当我通过testNG xml文件运行测试时,其中一个Test类的@BeforeClass 方法中存在异常,那么 TestNG会跳过所有后续测试类< /强>
例如,当我将TestBase类中的注释更改为 @BeforeSuite 时,所有测试都会运行,即使@BeforeClass中存在异常方法
运行xml文件时,将跳过完整的RunAllTestClasses02类。
testNG xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<suite name = "MiscSuite">
<test name = "MiscTest">
<classes >
<class name="drkthng.misc.RunAllTestClasses01" />
<class name="drkthng.misc.RunAllTestClasses02" />
</classes>
</test>
</suite>
使用@BeforeClass方法的TestBase类:
public abstract class RunAllTestClassesBase {
@BeforeClass
public void beforeClass() {
// do something that all Test classes will need
}
}
在@BeforeClass方法中抛出异常的测试类:
public class RunAllTestClasses01 extends RunAllTestClassesBase {
@BeforeClass
public void beforeClass() {
Assert.assertTrue(false);
}
@Test
public void Test01() {
Assert.assertTrue(true);
}
}
答案 0 :(得分:5)
这是Testng中的一个错误。在6.9.5中解决。请升级。
答案 1 :(得分:-1)
尝试添加io.emit("hash", cookie)
或/和@AfterClass(alwaysrun = true)
,默认情况下,如果未完成BeforeClass或BeforeMethod,则会跳过它们。
有关testNG配置失败,策略和alwaysRun的文档说明是否/何时配置失败导致跳过侦听器方法(@AfterMethod(alwaysrun=true)
和其他侦听器),失败策略和最佳实践。