我正在尝试弄清楚如何在测试阶段使用Groovy测试脚本导入Java类...
具体来说,我想使用来自here的 JavaFXThreadingRule
:.java文件(或者更确切地说here以及我的Java测试源路径中包含的内容),然后在我的Groovy测试脚本中使用 import
作为注释 .
Groovy测试脚本路径是src \ test \ ft \ groovy \ core \ testscript.groovy .
.java文件是src \ test \ ft \ java \ core \ JavaFXThreadingRule.java .
我在两者中使用的包装线都是"package core;"
build.gradle中的我的"sourceSets"子句如下所示:
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
}
test {
java {
srcDirs = ['src/test/ft/java' ]
}
groovy {
srcDirs = ['src/test/ft/groovy', 'src/test/ut/groovy']
}
}
}
有趣的是,build.gradle输出显示 compileTestJava
任务在 compileTestGroovy
任务之前运行...但我得到了
无法解析类core.JavaFXThreadingRule @第18行,第1列.import core.JavaFXThreadingRule ^
NB我也试过“导入JavaFXThreadingRule” - 结果相同 .
除了想要解决问题之外,我还想知道Gradle如何决定执行任务的顺序 compileTestJava
和 compileTestGroovy
...以及我是否应该让我的 compileTestGroovy
显然依赖于 compileTestJava
...
1 回答
感谢Tim Yates,我找到了将这个Java文件放在Groovy中的"workaround" ...但this answer给了我另一个线索,然后我将build.gradle更改为:
...工作......毫无疑问,老Gradle手显而易见 .
上面提到的问题和答案是讨论应用程序代码类(和Gradle任务) . 除非一些Gradle专家可以说否则我假设Groovy测试编译任务和Java测试编译任务是完全独立的,不能“看到”彼此的类......