dja*_*fan 9 testing testng unit-testing exception
如何有效地使用TestNG 抛出新的SkipException()?有人有例子吗?
我尝试在测试方法开始时抛出此异常,但它会破坏拆卸,设置,方法等,并且通过导致一些(并非所有)后续测试也被跳过而导致附带损坏,并显示TestNG HTML报告上的一堆垃圾.
我使用TestNG来运行我的单元测试,我已经知道如何使用@Test注释的选项来禁用测试.我希望我的测试在我的报告中显示为"存在"但不计算在净结果中.换句话说,如果有一个@Test注释选项来"跳过"测试,那就太好了.这样我就可以将测试标记为忽略sortof,而不会使测试从所有测试列表中消失.
在@Test运行之前,是否需要在@BeforeXXX中抛出"SkipException"?这可能解释了我所看到的奇迹.
dja*_*fan 12
是的,我的怀疑是正确的.在@Test中抛出异常不起作用,也没有将它放在@BeforeTest中,而我在类中使用并行.如果这样做,异常将破坏测试设置,TestNG报告将在所有相关的@Configuration方法中显示异常,甚至可能导致后续测试失败而不会被跳过.
但是,当我把它扔进@BeforeMethod时,它完美无缺.很高兴我能搞清楚.该类的文档表明它可以在任何@Configuration注释方法中工作,但是我正在做的事情不允许我这样做.
@BeforeMethod
public void beforeMethod() {
throw new SkipException("Testing skip.");
}
Run Code Online (Sandbox Code Playgroud)
我正在使用TestNG 6.8.1.
我有一些@Test方法,我扔SkipException,我没有看到任何古怪.它似乎与预期一样有效.
@Test
public void testAddCategories() throws Exception {
if (SupportedDbType.HSQL.equals(dbType)) {
throw new SkipException("Using HSQL will fail this test. aborting...");
}
...
}
Run Code Online (Sandbox Code Playgroud)
Maven输出:
Results :
Tests run: 85, Failures: 0, Errors: 0, Skipped: 2
Run Code Online (Sandbox Code Playgroud)