【发布时间】:2018-07-09 21:44:21
【问题描述】:
我正在尝试研究如何在测试阶段获得一个 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 列。 导入 core.JavaFXThreadingRule ^
注意,我也尝试过“import JavaFXThreadingRule”——结果相同。
除了只想解决问题之外,我还想知道 Gradle 如何决定以什么顺序执行任务 compileTestJava 和 compileTestGroovy... 以及我是否不应该让我的 compileTestGroovy 显式依赖在compileTestJava...
【问题讨论】:
-
将Java文件粘贴到你的Groovy路径下
-
@Ori Dar 该类文件(以及它生成的其他 3 个)实际上位于 build\classes\java\test 下(这是一台 Windoze 机器)。
-
@tim_yates...哈...谢谢,工作。我最初尝试过,但我认为我犯了不包括包装声明的错误。现在我把它放进去。 compileTestGroovy 任务无法从 compileTestJava 任务中获取和使用类似乎仍然有点令人费解。叹息:我有很多关于 Gradle 的知识。
-
认为这是一个 groovy 编译器的东西,不一定是 gradle 的东西。很高兴它有效