首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCUITest测试执行顺序

XCUITest测试执行顺序
EN

Stack Overflow用户
提问于 2017-10-13 03:45:14
回答 2查看 2.8K关注 0票数 4

是否有任何已知的方式来影响XCUITest调用测试方法的顺序?目前,调用哪个测试方法的顺序似乎完全是任意的。

这使得不可能定义特定的顺序。一般来说,Xcode管理XCUITest运行的方式是次优的,因为您必须为每个测试用例定义一个测试函数。最好只从一种方法启动完整的测试会话,这样就可以在会话中构建自己的测试:特性:场景。

..。这正是我所要做的,因为我们遵循的是卡拉巴斯风格的测试结构,而我围绕XCUITest编写的一个框架提供了许多额外的功能(比如测试轨集成)。

我试图以这样一种方式来实现这个框架:所有的特性和场景都是从一个test()方法中组织和启动的。如果Xcode允许的话,这是可行的,但是事实证明,在每个场景之间终止和启动应用程序是有问题的,因为它会导致主线程中断,甚至崩溃。因此,我向我们的框架添加了支持来实现它,这是一种旧的Xcode方式,它必须为每个测试定义一个方法,但是顺序被Xcode搞砸了,这会扰乱测试轨的日志和报告的生成。

EN

回答 2

Stack Overflow用户

发布于 2019-05-23 06:30:58

XCUITest按字母升序执行测试(除非是随机的)。您可以将测试方法命名为如下所示,以按所需的顺序运行

test01FirstCase() { //test code }

test02ThirdCaseButRunsSecond() { //test code }

test03SecondCaseButRunsThird() { //test code }

票数 6
EN

Stack Overflow用户

发布于 2019-06-21 07:49:07

如果您希望您的应用程序在每个测试方法之后不启动和终止,那么只需将XCUIApplication().launch()方法从安装方法中删除,并将其放在所有程序之上的第一个测试函数中,这就是app将只启动一次,而第二次测试执行将完全从第一个测试结束的点开始的方式。

如果您想要维护执行顺序,一种方法是定义以下任何一种顺序

代码语言:javascript
复制
      func Test01(){} 
      func Test01(){}
      func Test_A(){}
      func Test_B(){}
      func Test01_AnyString(){}
      func Test02_AnyString(){}

或者,如果要从单个方法启动所有执行,请执行以下步骤

代码语言:javascript
复制
     func Test01_veryFirstTestMethod(){

           secondTestMethod()
           thirdTestMethod()
           forthTestMethod()
           so on............
}

注意:您的secondTestMethodthirdTestMethodforthTestMethod在函数声明中没有test关键字

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46722227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档