1

我有一个 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.runclasses ,我会得到失败列表,但它不能与 TestSuite 的实例一起使用,因为我将测试类作为输入,所以我必须使用它。

编辑-1:

如果可以创建一个扩展 TestSuite 的类并将类动态添加到套件中,那么这将有利于我的需要。
任何建议都会很棒。

编辑2:

从网上的更多搜索中,我看到了失败testFailure之间的区别。我怎样才能通过 testFailure 而不是失败的测试失败?

4

1 回答 1

0

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

于 2016-07-24T07:47:48.227 回答