TestNG 在@DataProvider方法中引发异常后跳过测试

我有点困惑。

如何让 TestNG 报告测试错误?

// ...
@DataProvider(name = "foo")
public Object[][] provideData () {
    throw new SomeRuntimeException("Some error occurred. The test configuration "
            + "is somehow incorrect.");
}

这只会导致测试跳过。该异常甚至不会被记录。将其移动到构造函数只会记录异常,但这还不够...

我想要一个大胖子错误消息。

目前,使用专用的(自)测试方法可以完成至少显示一些测试失败的工作...

无论如何,知道testNG对错误的定义是什么样的就好了。

感谢您的任何提示!


答案 1

以下是一篇文章,它提出了一套公平的替代方案,并提供了足够详细的解释:

当 TestNG 的 DataProvider 引发异常时失败而不是跳过测试

对我来说,最好的方式恰好是为数据提供者添加测试,这里是想法的简要说明:

public class MyClass {

    @DataProvider(name = "my-data-provider")
    private Object [][] myProvider() {
        // ...
    }

    @Test
    public void testDataProviders() {
        Assert.assertTrue(myProvider().length > 0);
    }

    @Test
    // ... Real tests.

}

答案 2

推荐