我试图以确定的顺序运行测试用例,但没有运气。当我看到之后,从另一个测试方法与@AfterClass
运行注解的方法:为什么@AfterClass在其他类的测试之后调用?
Configuring TestNG with: [email protected]e9d6
RUN class com.example.testng.ITCaseOne.beforeClass()
RUN class com.example.testng.ITCaseOne.someCase()
RUN class com.example.testng.ITCaseTwo.beforeClass()
RUN class com.example.testng.ITCaseTwo.someCase()
RUN class com.example.testng.ITCaseOne.anotherCase()
RUN class com.example.testng.ITCaseOne.afterClass()
RUN class com.example.testng.ITCaseTwo.anotherCase()
RUN class com.example.testng.ITCaseTwo.afterClass()
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.25 sec
它失败,因为从ITCaseTwo
所有@Test
必须被调用后,才ITCaseOne.afterClass()
(因为我用从一个案例硒和测试应该检查相应的页面) 。
我的简单的类:
public class ITCaseOne {
@BeforeClass
public void beforeClass() {
System.out.printf("RUN %s.beforeClass()\n", getClass());
}
@AfterClass(alwaysRun = true)
public void afterClass() {
System.out.printf("RUN %s.afterClass()\n", getClass());
}
@Test(groups = "std-one")
public void someCase() {
System.out.printf("RUN %s.someCase()\n", getClass());
}
@Test(groups = "logic-one", dependsOnGroups = "std-one")
public void anotherCase() {
System.out.printf("RUN %s.anotherCase()\n", getClass());
}
}
和
public class ITCaseTwo {
@BeforeClass
public void beforeClass() {
System.out.printf("RUN %s.beforeClass()\n", getClass());
}
@AfterClass(alwaysRun = true)
public void afterClass() {
System.out.printf("RUN %s.afterClass()\n", getClass());
}
@Test(groups = "std-two")
public void someCase() {
System.out.printf("RUN %s.someCase()\n", getClass());
}
@Test(groups = "logic-two", dependsOnGroups = "std-two")
public void anotherCase() {
System.out.printf("RUN %s.anotherCase()\n", getClass());
}
}
如果它是重要的我使用maven-failsafe-plugin
2.12和testng
6.4
(顺便说一句,我也尝试使用套件文件与preserve-order="true"
但它不适用于我)。
在此先感谢!
哎呀。我刚刚在我的问题中解决了错误,以澄清我期望的内容。我只需要在第一课的所有方法之后执行第二课的所有方法。 – 2012-03-22 14:23:32
答案仍然成立。 – 2012-03-22 14:35:52
是的,它的工作原理,谢谢。但它有一些缺点:所有类都应该用这种方式链接,当第一个测试用例中的一个测试失败时,所有其他类都将被跳过。此解决方案也为测试执行添加了严格的顺序,但实际上我并不在乎谁会首先被调用 - “ITCaseOne”或“ITCaseTwo”。 – 2012-03-23 12:29:57