我正在尝试找出如何在测试阶段获取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。
我在这两者中使用的包装行是“包装核心”;
我在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
任务之前运行...但是我得到了unable to resolve class core.JavaFXThreadingRule @ line 18, column 1. import core.JavaFXThreadingRule ^
注意,我也尝试过“import JavaFXThreadingRule”-同样的结果。
除了只想解决问题外,我还想知道Gradle如何决定执行
compileTestJava
和compileTestGroovy
任务的顺序...以及我是否不应该使compileTestGroovy
显式依赖compileTestJava
...
最佳答案
多亏了蒂姆·耶茨(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测试编译任务是完全分开的,并且无法“看到”彼此的类...
关于java - Gradle:获取Groovy测试脚本以使用辅助Java类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48531030/