运行 JUnit 测试忽略模块路径

问题描述 投票:0回答:2

我正在开发一个现有的基于 maven 的 Java 项目以支持 Java 模块 (JPMS)。到目前为止,我在使用文件 info-module.java 定义新模块及其依赖项时没有问题,但是当我尝试从 Eclipse 运行单元测试时仍然遇到问题。

测试代码遵循 Maven 项目通常的文件夹和包方案:代码位于 src/test/java 文件夹内,并复制应用程序代码的包结构。

当我尝试从 Eclipse 运行 JUnit 测试用例时,我收到很多关于缺少模块或不可见包的错误。我现在喜欢做的是仅使用 Java 类路径并忽略模块路径来运行单元测试。使用 Maven 和 Surefire 插件非常简单,因为我可以使用选项 useModulePath 忽略模块路径。

我也知道 IntelliJ 作为一个名为“不要使用 --module-path 选项”的选项,它正是我需要的。

现在 Eclipse 是否有任何等效选项或解决方法来获得此行为?

java eclipse junit java-module
2个回答
1
投票

经过一番研究,我找到了一种适合我的解决方法。我想明确指出这是一种解决方法,它无法与我在问题中谈到的 Intellij 功能相提并论。 基本上我在“Java Build Path”选项中过滤了文件module-info.java

以这种方式,Eclipse 忽略模块路径,只使用旧的类路径。


0
投票

https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-2F61F3A9-0979-46A4-8B49-325BA0EE8B66

寻找运行时选项 --add-opens 并使用它来提供 JUnit 或 TestNG 等对白盒测试构建所需的反射访问。

看来短期内不会改善。像 Gradle 这样的构建工具已经将其打包以减少痛苦。

© www.soinside.com 2019 - 2024. All rights reserved.