1

我正在实现一个扩展的自定义 JUnit 运行器BlockJUnit4ClassRunner,可以使用 Maven Failsafe 插件执行。运行程序将测试发送到 Java 应用程序服务器以运行,然后使用 Java 序列化接收测试结果。然后它手动将测试结果触发到类方法中的RunNotifier给定值。run()

这一切都很好,但是当使用 Maven Failsafe Plugin 运行时,如果有一个或多个测试失败,插件将无法报告正确的测试运行次数;它将始终报告运行的测试数等于失败的测试数。即使Result发送到该RunNotifier:fireTestRunFinished()方法的对象具有正确的统计信息,也会发生这种情况,因此 Failsafe 插件看起来并没有直接监听 RunNotifier 报告的内容。但是,如果所有测试都通过,那么 Failsafe 插件会报告正确的测试运行次数。

我一直在查看 Maven 插件代码,似乎他们使用TestSetStats对象来记录测试结果。但是,我无法进一步理解代码,即 JUnit 的结果如何馈送到TestSetStats. 有人可以向我解释这个过程吗?

此外,有谁知道为什么 Maven Failsafe 插件不会收到正确的测试结果?我知道我提供的信息相当笼统,所以请随时询问具体情况。

4

0 回答 0