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

Failures are not collected in dynamic created test suite

我有一个 jar 文件,我从它测试 classes(junit 测试)中反映出来。

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

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

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 的实例一起使用,我必须使用它,因为我得到测试 classes 作为输入。

编辑-1:

如果可以创建一个 Class 来扩展 TestSuite 并将 class 动态添加到套件中,这将很好地满足我的需求。
任何建议都会很棒。

编辑-2:

通过在网络上进行更多搜索,我看到了 failure and a testFailure 之间的差异。我如何才能通过 testFailure 而不是失败来使测试失败?

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