我有一个testNg类,我必须在一组完整的数据上运行相同的测试。我可以在@dataprovider中提供每个数据行,但是,每个数据行的结果都将显示在报告文件中。就我而言,我必须测试数百万的数据。这会导致报告非常混乱。以下是一个例子。
TESTDATA: 我的测试数据是一个包含多个JSON行的文件,其中每个JSON对象都应该有一个名称和职业。
{"name":"Jim", "occupation":"racing"}
{"name":,}
我的测试NG课程看起来像:
public class TestJSon {
@DataProvider("lineProvider")
public Object[][] lineProvider() {
// return JSON lines
}
@Test (dataProvider = "lineProvider")
public void testJsonLines(String name, String occupation) {
// Test name and occupation
}
}
现在输出报告将包含:
testJsonLines传递了名为Jim的行 对于行{“name”:,},testJsonLines失败 第{}行的testJsonLines失败 对于行{“name”:“Jack”,“占用”:“}
,testJsonLines失败
我想要一份简单打印的报告:
对于第2,3和4行中的输入,testJSON输入失败
总结一下,我试图让我的报告组在所有数据ra上运行结果,而不是打印每个数据。有没有办法做到这一点?
答案 0 :(得分:0)
我有类似的问题。我们测试了数以百万计的数据 - 数据提供者方法要么导致内存错误,要么报告不容易看到。
我最终拥有自己的IReporter实现,它将结果写入excel表,允许我有过滤器或做我想要的任何定制。当然,这必须与其他侦听器(ITestListener / IInvokedMethodListener)一起以您希望的方式捕获结果。
在我的情况下,我也使用自己的并行机制来解决这么多数据的内存错误 - 我通常习惯于90000 testdata命中它。