【问题标题】:How can I convince eclipse/JUnit4 to find all my tests, in a gradle/eclipse project?如何说服 eclipse/JUnit4 在 gradle/eclipse 项目中找到我的所有测试?
【发布时间】:2019-11-06 15:41:11
【问题描述】:

背景

JUnit 4 测试运行器,在 Eclipse 4.11 中。

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

问题

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

当我尝试“在选定的项目、包或源文件夹中运行所有测试”时,将忽略来自任何其他源路径的测试。此外,选择特定的源文件夹 'fooTest/java' 会出错,并显示消息“No tests found with test runner 'Junit 4'”。 但是,当我对特定测试类使用“运行单个测试”选项时,它发现它的所有测试方法都很好。我可以指定一个特定的方法,测试运行得很好。

没用的东西

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

我为我的不同测试源路径尝试了 Eclipse 的“包含测试源”标志的各种设置。打开或关闭,我的所有测试源路径的行为都是相同的。 /test/java 总是被找到,fooTest/java 总是被错过。不,我没有在 4 个不同的测试源路径中尝试过所有 16 种标志排列。

我尝试从 .project 和 .classpath 中删除所有与 gradle 相关的内容。行为没有变化。该死的……让我的希望大增。

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


有没有人有进一步的建议,我可以尝试让我的剩余测试在没有单独配置的情况下运行,我必须一次手动运行一个测试类?

【问题讨论】:

  • 你如何运行测试? Eclipse 启动器,gradle 任务?
  • 我通过 Eclipse 运行程序运行它们...通过单击 UI 中的“调试”或“运行”,或者按 F11 或 ctrl+F11(它们分别执行相同的操作)。 gradle 任务已经被“源集”分开,我可以(并且确实)在命令行提供多个任务......但是 Eclipse 只有“整个项目”选项,但它并没有像宣传的那样工作。跨度>

标签: eclipse gradle junit


【解决方案1】:

我切换到 JUnit 5 测试运行器,它可以很好地处理所有问题。它的老式包能够找到我所有的 JUnit 4 测试,并且我已经修改了几个测试以使用 JUnit 5 中新奇的注解和断言。

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

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多