首页 > 解决方案 > 在 Eclipse 中对 Java 9 模块化项目进行 JUnit 测试

问题描述

我想在 Eclipse 的 Java 9 模块化项目上使用 JUnit 5 运行测试,没有 Maven、Gradle 或所有花哨的东西。所以我有src/main/javamodule-info.java 和模块包所在的路径以及src/test/java所有测试类所在的路径。在 Jigsaw 模块系统之前,一切照旧。我有 Eclipse Oxygen.3a (4.7.3a) 和 Java 10.0.1。

我看过一些来自 Eclipse 的视频,展示了如何将 JUnit 测试添加到模块化项目中,但这让我大吃一惊:他们将required关键字放入模块的 module-info.java 中,并将其绑定到 JUnit 模块。这实际上是正确的吗?

我也看到了所有这些--patch-module/--add-reads解决方案(当我们谈论在控制台中工作时),这似乎是正确的方法,但我不知道如何在没有被测绑定模块的情况下在 Eclipse 中实现这一点到 JUnit 模块。这在 Eclipse 中是否可能(没有 Maven 等)?

标签: javaeclipsejunit5

解决方案


我也尝试解决这个问题很长一段时间。我的方法是在 src/main/java 的源代码目录中添加一个过滤器,以过滤掉 module-info.java。这允许在 src/test/java 中有不同的 module-info.java。它将被复制到输出文件夹中。这样,您可以在 IDE 中运行单元测试,并将另一个用于最终构建。但是,您需要自己更新 src/main/java 中的内容。

右键单击项目 > 属性 > Java 构建路径 > 源

选择 src/main/java 条目,单击 Edit > Next > Exclusion Patterns > Add


推荐阅读