我正在尝试使用带有gradle的Java模块系统来创建Java应用程序。我使用此插件:gradle推荐的https://github.com/java9-modularity/gradle-modules-plugin。 Java源代码可以正确编译并按预期使用module-info.java。但是,我的单元测试不再起作用。我想使用assertJ,它现在引起问题。当我尝试编译测试类时,出现此错误:
错误:包org.assertj.core.api不可见导入静态org.assertj.core.api.Assertions.assertThat;^(软件包org.assertj.core.api在模块org.assertj.core中声明,但是模块module.test.main无法读取它)
我尝试设置
tasks {
test {
extensions.configure(TestModuleOptions::class) {
runOnClasspath = true
}
}
}
但是这不会改变任何东西。
我为任何人创建了一个临时的github存储库以重现该问题:https://github.com/Mariusz-v7/tmp-module-test
如何立即修复单元测试?
如plugin documentation中所述,默认情况下,测试在模块路径上进行。
您所做的更改是关于running测试的。但是,测试编译也会在模块路径上进行,因此您需要模块正确导入测试依赖项。错误告诉您的是什么。
作为替代,您可以在即将推出的Gradle 6.4中尝试本机支持,release candidate可用