【问题标题】:KIF for ios automation testing - how to know order of tests用于 ios 自动化测试的 KIF - 如何知道测试的顺序
【发布时间】:2015-12-01 06:16:49
【问题描述】:

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,我运行整个测试套件。我怎么知道哪个会先运行?我试过只运行一个文件,但可以同时运行多个文件吗?

【问题讨论】:

    标签: ios kif


    【解决方案1】:

    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 将能够运行,因为它是从正确的视图(在本例中为 TabBarA 的根视图)开始的。同样,如果 TestA 失败,TestB 仍然会运行,因为即使失败,第二次运行也会从正确的位置开始(在这种情况下是登录视图控制器)。希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      相关资源
      最近更新 更多