Java TestNG在@DataProvider方法中引发异常后跳过测试
我有点困惑 如何让TestNG为测试报告错误Java TestNG在@DataProvider方法中引发异常后跳过测试,java,unit-testing,testing,automated-tests,testng,Java,Unit Testing,Testing,Automated Tests,Testng,我有点困惑 如何让TestNG为测试报告错误 // ... @DataProvider(name = "foo") public Object[][] provideData () { throw new SomeRuntimeException("Some error occurred. The test configuration " + "is somehow incorrect."); } 这只会导致跳过测试。这个异常甚至没有被记录下来。 将其移动到构造
// ...
@DataProvider(name = "foo")
public Object[][] provideData () {
throw new SomeRuntimeException("Some error occurred. The test configuration "
+ "is somehow incorrect.");
}
这只会导致跳过测试。这个异常甚至没有被记录下来。
将其移动到构造函数只会记录异常,但这还不够
我想要一个大的错误消息
目前,使用专用(自)测试方法进行的工作至少显示了一些测试失败
无论如何,如果知道testNG对错误的定义是什么样子的,那就太好了
谢谢你的提示 这篇文章提出了一套合理的备选方案,并给出了足够详细的解释: 对我来说,最好的方法是为数据提供者添加测试,下面是想法的简要说明:
public class MyClass {
@DataProvider(name = "my-data-provider")
private Object [][] myProvider() {
// ...
}
@Test
public void testDataProviders() {
Assert.assertTrue(myProvider().length > 0);
}
@Test
// ... Real tests.
}
你能告诉我们调用这个的代码吗?你确定它没有以某种方式包装在一个
try/catch
中吗?引用数据提供程序的方法在任何方面都不知道有任何异常。据我所知,测试方法本身不调用数据提供程序。使用Dataprovider提供的参数调用测试方法。Dataprovider是测试前导的一部分,因此不会作为错误报告。您有责任捕获并记录DataProvider方法中的任何错误。太糟糕了。我想知道是否有可能直接触发错误。它不需要在数据提供程序中完成。我的意思是,总的来说,有办法吗?这个问题已经很老了,但在我看来,这个问题仍然是热门话题。非常感谢你!这篇文章真的很有帮助。