我如何说服eclipse / JUnit4在gradle / eclipse项目中找到所有测试?

时间:2019-06-24 20:02:16

标签: eclipse gradle junit

背景

Eclipse 4.11中的JUnit 4测试运行器。

我有一个从build.gradle文件导入的eclipse项目。这个项目有几个不同的源路径,每个路径都有自己的测试路径。 main / java,test / java,foo / java,fooTest / java,fooTest / resource等。

问题

当我运行“整个项目” JUnit配置(调试,运行,代码覆盖等)时,发现的全部是“ test / java”中的测试。我已经在此文件夹中成功添加了新的测试类和新的@Test方法。

当我尝试“在所选项目,程序包或源文件夹中运行所有测试”时,将忽略来自任何其他源路径的测试。此外,选择特定的源文件夹'fooTest / java'时错误消息为“测试运行程序'Junit 4'未找到测试”。 但是,当我对特定的测试类使用“运行单个测试”选项时,它会发现所有测试方法都很好。我可以指定一种特定的方法,然后测试运行就可以了。

无效的东西

我尝试更改非主要测试源路径的输出目录,以写入与工作测试源路径相同的文件夹。不高兴。

我为不同的测试源路径尝试了Eclipse的“包含测试源”标志的各种设置。启用或禁用后,我所有测试源路径上的行为都相同。总是找到/test/java,总是错过fooTest/java。不,我还没有在我的4个不同的测试源路径中尝试使用该标志的所有16个排列。

我尝试从.project和.classpath中提取所有与gradle相关的内容。行为无变化。该死的……我的希望更高了。

我尝试更改<classpathentry/>项目文件中.classpath的顺序。当我将test/java移到不再是第一个测试路径时,我再次遇到“未找到测试”错误,就像我针对junit配置“在选定项目,程序包中运行所有测试,或源文件夹”位于其他测试源文件夹之一。将其放回原位即可恢复原来的行为。


有人对我必须每次手动运行一个测试类的其余测试没有单独配置的情况下提出其他建议吗?

1 个答案:

答案 0 :(得分:0)

我切换到了JUnit 5测试运行器,并且一切正常。它的老式程序包能够找到我所有的JUnit 4测试,并且此后我修改了一些测试,以在JUnit 5中使用新的注释和断言。

也许这是JUnit 4运行程序中的已知错误/限制?呃,好吧。现在可以使用了。