【发布时间】:2018-03-23 23:00:00
【问题描述】:
为了解决this 和不知何故that,我试图创建包来细分main 和test 类,然后使用带有添加模块的编译器来执行单元测试.不是一个很好的同意方式,目前只是一个假设的结构。
随着我的进一步讨论,几个未解决的问题是:-
- 将基于 JDK9 的模块添加到项目中。
- 使用 IntelliJ 的快捷方式将 JUnit5 添加到类路径。 (lib 文件夹)[
junit-jupiter-api-5.0.0.jar]
问。请注意,它会将opentest4j-1.0.0.jar 带到 lib/ 文件夹中。为什么会这样,另外一个罐子是干什么用的?
添加类并相应生成一些测试方法。
-
使用命令编译sample project(分享只是为了画一张使用中的目录结构)
javac --module-path lib -d "target" $(find src -name "*.java")导致警告为 -
warning: unknown enum constant Status.STABLE reason: class file for org.apiguardian.api.API$Status not found warning: unknown enum constant Status.STABLE 2 warnings
注意:-
我发现 junit-jupiter 的用法很可疑,因为如果我使用 JUnit 注释掉代码并执行相同的命令,一切似乎都正常。
Libraries/Tools 如果这可能很重要:-
-
junit-jupiter-api-5.0.0与 - Java版
"9" (build 9+181) - IntelliJ
2017.2.5
问。出现这种警告的可能原因是什么?此外,我无法在我的项目中以及项目类之外找到API.Status。
【问题讨论】:
-
对不起,我删除了我的评论,因为我没有使用 intelliJ 进行测试,这就是你要问的。我也无法在任何地方找到
org.apiguardian包,所以我的猜测是它与 intelliJ 有关。 -
@Sormuras 感谢您的链接。虽然这可能会回答
org.apiguardian.api,但仍然不清楚为什么将 junit-jupiter 包含到类路径中会带来opentest4j-1.0.0.jar? -
"JUnit Jupiter API" 依赖于它。有关此额外项目/工件的目的,请参阅github.com/ota4j-team/opentest4j。
-
@Sormuras 对this 有任何想法吗?
标签: java unit-testing java-9 junit5 intellij-idea2017