未在动态创建的测试套件中收集失败



我有一个jar文件,我从它反映了测试类(junit测试)。

我创建了TestSuite实例并将测试添加到其中。

为了检查我的代码,我尝试只向测试套件添加一个示例测试类。

TestSuite suite = new TestSuite();
suite.addTest(new JUnit4TestAdapter(ExampleTest.class));

然后我调用了suite.run()来运行测试:

TestResult result = new TestResult();
suite.run(result);

问题是,当测试完成时,应该在结果中的失败列表是空的。

Enumeration<TestFailure> failures = result.failures(); // = empty list

如何使用testSuite获取失败?如果我使用JUnitCore.runsses,我会得到失败列表,但它不能与TestSuite的实例一起使用,因为我得到了测试类作为输入,所以我必须使用它。

第1版:

如果可以创建一个扩展TestSuite的类,并将类动态添加到该套件中,这将符合我的需求。
任何建议都很好。

第2版:

从更多的网络搜索中,我看到了失败和测试失败之间的区别。我如何才能通过testFailure而不是failure测试?

经过更多的调试,我发现TestResult对象确实捕获了失败,但将其报告为错误(断言错误)
我还发现TestResult.errors()返回了TestFailure的枚举器。每个TestFailure都包含有关抛出异常的信息,因此我现在可以通过检查哪些错误是断言错误,哪些不是断言错误来区分错误和失败。

相关内容

  • 没有找到相关文章

最新更新