首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日食+ m2e + junit5 -已经可能了?

日食+ m2e + junit5 -已经可能了?
EN

Stack Overflow用户
提问于 2018-10-14 16:12:16
回答 1查看 132关注 0票数 0

尝试让Eclipse2018-09+修补程序与Java 11支持、m2e和junit5协同工作。

正如https://github.com/junit-team/junit5-samples/tree/master/junit5-modular-world示例中推荐的那样,我在test/java中引入了第二个模块info.java。

Eclipse的反应令我吃惊:

更改文件后,我无法保存它。只有关闭Eclipse才能保存它。然而,重新开放,迷惑不解的Eclipse。它不能显示托管多个模块的项目的任何细节-info.java,只显示项目名称。

Eclipse可能用一个Java模块标识一个项目,而mvn测试编译和执行的模块显然不同于由mvn创建的模块。

经历了很多我能想到的选择目前,我不得不放弃,回到junit 4.12。

你知道更好的解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-14 19:56:29

此时Eclipse不支持测试源文件夹中的辅助module-info.java (但是如果您尝试这样做的话,它的行为可能会得到改进)。

现在,您可能根本不需要它:

Maven将模块路径中提到的模块-info.java中提到的依赖项放在类路径上,其他所有依赖项(例如,仅测试依赖项,如junit)都放在类路径上,因此它们成为未命名模块的一部分。在编译测试时,会添加命令行选项,因此在主源文件夹中作为模块的一部分处理的测试代码仍然可以读取未命名的模块(通过添加--add-reads modulename=ALL-UNNAMED),因此junit对测试代码是可见的。

Eclipse和后来的版本也支持这种行为。

有关二级测试module-info.java的一些背景信息: maven -编译器-plugin自3.8版以来就支持这一点(参见https://www.mail-archive.com/announce@maven.apache.org/msg00866.html,在compilerhttps://issues.apache.org/jira/browse/MCOMPILER-341中实现),但我不知道已经发布了一个匹配的maven-surefire-plugin,所以我认为您目前无法使用maven运行这类测试。

在Eclipse中实现对辅助测试module-info.java的支持是可能的,只要它是主源文件夹中主module-info.java的一个严格的超集,或者只要它们指定相同的模块,并且它们的内容将与"pro“构建工具https://github.com/forax/pro中的内容合并。但还没有人做过这方面的工作。

在Eclipse中可能永远不支持的是,有一个二级测试module-info.java,它指定一个不同的模块,因为Eclipse假定一个java项目只属于一个模块。但这并不重要,因为这些测试只能使用主源的公共代码和导出代码,因此可以简单地将它们放入自己的maven模块中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52804620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档