ios 自动化测试的 KIF - 如何知道测试顺序
KIF for ios automation testing - how to know order of tests
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
等等
你没有问这个,但以防万一你需要知道:所有测试都应该独立,这样测试 运行 的顺序无关紧要。这就是为什么它们 运行 按字母顺序排列。因此,例如,每个测试都应该 return 到它开始时所在的屏幕,以便下一个测试可以从该屏幕 运行。
在我的一个项目中有一个登录,然后还有标签栏。这是我设置的方式(这是 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 仍将是 运行,因为即使再次失败,第二个 运行 也会从正确的位置开始(在本例中是登录视图控制器)。希望这对您有所帮助!
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
等等
你没有问这个,但以防万一你需要知道:所有测试都应该独立,这样测试 运行 的顺序无关紧要。这就是为什么它们 运行 按字母顺序排列。因此,例如,每个测试都应该 return 到它开始时所在的屏幕,以便下一个测试可以从该屏幕 运行。
在我的一个项目中有一个登录,然后还有标签栏。这是我设置的方式(这是 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 仍将是 运行,因为即使再次失败,第二个 运行 也会从正确的位置开始(在本例中是登录视图控制器)。希望这对您有所帮助!