【发布时间】:2015-04-22 10:14:35
【问题描述】:
我在某些类中进行了 TestNG 测试,这些测试扩展了同一个主类。
我需要对 class1 和 class2 进行相同的最后测试,但如果我将 @Test(priority = 666) 添加到主类,它会在所有类之后开始。
我应该如何在主类中注释@Test 在每个类的所有测试之后它会开始什么?
非常感谢。也对不起英语不好。
主类
public class MainTest {
@BeforeClass()
public void setup() {
//something
}
@AfterClass()
public void tearDown() {
//something
}
@AfterMethod()
public void log_writer(Method method) {
//something
}
@Test(priority = 666) {}
}
类1
public class Class1 extends MainTest {
@Test
public void test1(){}
@Test
public void test2(){}
}
和class2
public class Class2 extends MainTest {
@Test
public void test1(){}
@Test
public void test2(){}
}
【问题讨论】:
-
为什么需要测试依赖于执行顺序?理想情况下,您应该编写彼此独立的测试,以便它们可以并行执行。
-
我知道。但在这个测试中,我想检查日志,而其他测试通过。
-
在这种情况下,您可以分解您的“日志检查”测试并将其放在相应的类中,以便它检查在同一类中创建的日志吗?我假设您可以为班级中的测试分配优先级。
-
是的,但是同样的代码会重复多次。我希望没有它。实际上我有大约 30 个测试课程。
-
我会使用 TestNG 依赖项,而不是纠结于优先级。