Eclipse 目前不支持测试源文件夹中的辅助module-info.java
文件夹(但如果您尝试这样做,它的行为可能会得到改进)。
现在,您可能根本不需要它:
Maven 将 module-info.java 中提到的依赖项放在模块路径中,所有其他依赖项(例如 junit 之类的仅测试依赖项)放在类路径中,因此它们成为未命名模块的一部分。编译测试时,会添加命令行选项,因此在主源文件夹中被视为模块一部分的测试代码仍然可以读取未命名的模块(通过添加--add-reads modulename=ALL-UNNAMED
),因此 junit 对测试代码是可见的。
Eclipse Photon 和更高版本也支持这种行为。
关于辅助测试的一些背景module-info.java
:maven-compiler-plugin 自 3.8 版起支持此功能(请参阅https://www.mail-archive.com/announce@maven.apache.org/msg00866.html,在问题https:// issues.apache.org/jira/browse/MCOMPILER-341),但我不知道匹配的 maven-surefire-plugin 已经发布,所以我认为你目前无法运行这些类型的测试行家。
在 Eclipse 中实现对辅助测试的支持module-info.java
是可能的,只要它是module-info.java
主源文件夹中主要测试的严格超集,或者只要它们指定相同的模块并且它们的内容将像“ pro”构建工具https://github.com/forax/pro。但目前还没有人对此进行研究。
在 Eclipse 中可能永远不会支持的是有一个module-info.java
指定不同模块的辅助测试,因为 Eclipse 假设一个 java 项目只属于一个模块。但这无关紧要,因为这些测试只能使用主要来源的公共和导出代码,因此可以简单地将它们放入自己的 maven 模块中。