我正在尝试弄清楚如何在测试阶段使用Groovy测试脚本导入Java类...
具体来说,我想使用来自here的JavaFXThreadingRule
:。java文件(或者更确切地说是here,因此包含在我的Java测试源路径中),然后import
我的Groovy测试脚本用作注释。
Groovy测试脚本路径是src \ test \ ft \ groovy \ core \ testscript.groovy。
.java文件是src \ test \ ft \ java \ core \ JavaFXThreadingRule.java
我在两者中使用的包装线是“包核心”
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
的顺序......以及我是否应该让我的{ {1}}明确依赖于compileTestGroovy
...
答案 0 :(得分:0)
感谢Tim Yates,我找到了"解决方法"把这个Java文件放在Groovy中...但是this answer给了我另一个线索,然后我将build.gradle改为:
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
}
test {
groovy {
srcDirs = ['src/test/ft/groovy', 'src/test/ut/groovy', 'src/test/ft/java' ]
}
}
}
......有效......对老Gradle手来说无疑是显而易见的。
上面提到的问题和答案是讨论应用程序代码类(和Gradle任务)。除非一些Gradle专家可以说,否则我假设Groovy测试编译任务和Java测试编译任务是完全分开的,并且不能看到""彼此的课程......