ios - 用于 ios 自动化测试的 KIF - 如何知道测试顺序

标签 ios kif

KIF 测试按字母顺序执行,但如果我有多个文件怎么办?我想以一个顺序运行所有自动化测试,可以吗?

在单个文件中,这是正确的:

  - (void)testB {} will be the second test

- (void)testA {} will be the first test

- (void)testC {} will be the third test

但是,假设我有 MainScreenTest.m,然后是 SecondScreenTest.m,然后是 ThirdScreenTest.m,并且我运行整个测试套件。我如何知道哪一个将首先运行?我尝试只运行一个文件,但多个文件可以同时运行吗?

最佳答案

KIF 也会按字母顺序运行文件本身。所以它会是这样的:

TestFileA
 -(void)testA
 -(void)testE
 -(void)testR
TestFileB
 -(void)testB
 -(void)testC
 -(void)testE

等等

您没有问这个,但以防万一您需要知道:所有测试都应该独立,这样测试的运行顺序并不重要。这就是它们按字母顺序运行的原因。因此,例如每个测试都应该返回到它开始时所在的屏幕,以便下一个测试可以从该屏幕运行。

在我的一个项目中,有一个登录,然后还有选项卡栏。这就是我的设置方式(这是 sudo 代码,请不要复制和粘贴任何内容):

TestA
 -(void)beforeAll{login, & tapTabBarA} <- This happens once
 -(void)beforeEach{ } <- Anything in here would happen before every test
 -(void)afterEach{tapTabBarA} <- This happens after every test
 -(void)afterAll{logout} <- This happens once
 -(void)testSomethingA1
 -(void)testSomethingA2

TestB
 -(void)beforeAll{login, & tapTabBarB}
 -(void)beforeEach{ }
 -(void)afterEach{tapTabBarB}
 -(void)afterAll{logout}
 -(void)testSomethingB1
 -(void)testSomethingB2

这样,如果 testSomethingA1 失败,testSomethingA2 将能够运行,因为它是从正确的 View (在本例中为 TabBarA 的 Root View )开始的。类似地,如果 TestA 失败,TestB 仍将运行,因为即使失败,第二次运行也将在正确的位置启动(在本例中为登录 View Controller )。希望这有帮助!

关于ios - 用于 ios 自动化测试的 KIF - 如何知道测试顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32409059/

相关文章:

ios - 在 tableViewCell 内实现 UIImageView 动态单元高度的最佳方法?

html - 当我使用 wkwebview 加载本地 html 时,我发现它呈现速度比 uiwebview 慢

ios - 使用 KIF 点击状态栏或以编程方式进行

ios - 如何使用 KIF 更改默认超时?

android - 当 WIFI 网络没有互联网连接时,.net 或 Xamarin 互联网可用性检查

ios - 未出现的 View Controller

ios - 如何使用 swift 比较核心数据中同一实体的两个属性值

ios - 让 KIF 点击只有部分文本已知的 View

ios - KIF 输出 : AX Exchange error: Error Domain=Accessibility Code=0 "Remote service does not respond to _accessibilityMachPort"

ios - KIF 和 Quick/Nimble