KIF测试按字母顺序执行,但如果我有多个文件怎么办?我想在一个序列中运行所有自动化测试,可以这样做吗?
在单个文件中,这是正确的:
#t:hover{
text-decoration: none;
font-family: Verdana;
text-decoration: none;
color:#FF0000;
}
然而,让我们说我有MainScreenTest.m,然后是SecondScreenTest.m,然后是ThirdScreenTest.m,我运行整个测试套件。我怎么知道哪一个先运行?我试过只运行一个文件但可以同时多个工作吗?
答案 0 :(得分:2)
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仍然会运行,因为即使失败,第二次运行也将从正确的位置开始(在这种情况下是登录视图控制器)。希望这有帮助!