junit Eclipse列出但不运行单元测试,如何解决这个问题?

jfewjypa  于 2022-11-11  发布在  Eclipse
关注(0)|答案(1)|浏览(167)

当在Apache Jackrabbit项目中运行特定的junit测试时,Eclipse会经历运行测试的过程,但是测试永远不会运行,调试器断点永远不会触发,结果是八个测试中没有一个运行,也没有报告任何错误。
https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-spi2dav/src/test/java/org/apache/jackrabbit/spi2dav/ConnectionTest.java
令人困惑的是,测试在运行后并不指示它们是成功、失败还是被显式跳过,而且我在源代码中看不到任何指示它们应该被跳过的内容。
Eclipse想告诉我什么?

eqzww0vc

eqzww0vc1#

此行为是由覆盖Junit的run方法的单元测试触发的,如下所示:
https://github.com/apache/jackrabbit/blob/ed3124e5fe223dada33ce6ddf53bc666063c3f2f/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/webdav/server/WebDAVTestBase.java#L234

public void run(TestResult testResult) {
    if (Boolean.getBoolean("jackrabbit.test.integration")) {
        super.run(testResult);
    }
}

这导致测试根本无法运行。
在本例中,Eclipse选择了应该运行的测试方法并列出了它们,但是由于测试尚未运行,Eclipse UI仍然处于“vanilla”状态。
这个单元测试显然需要修正,以遵循maven的最佳实践,即将单元测试和集成测试分别拆分为surefire和failsafe,而不依赖于私有机制。

相关问题