我有一个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都包含有关抛出异常的信息,因此我现在可以通过检查哪些错误是断言错误,哪些不是断言错误来区分错误和失败。