在@DataProvider方法中引发Exception后,TestNG会跳过测试

Doe*_*son 10 java testing testng automated-tests unit-testing

我有点困惑.

如何让TestNG报告测试错误?

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

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

我想要一个很大的错误消息.

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

无论如何,很高兴知道testNG对错误的定义是什么样的.

谢谢你的任何提示!

Rom*_*nko 12

这篇文章提出了一套公平的备选方案,并提供了详尽的解释:

当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.

}
Run Code Online (Sandbox Code Playgroud)

  • 这个问题已经很老了,但问题仍然是我眼中的热门话题.非常感谢你!这篇文章真的很有帮助. (3认同)