Gradle:获取一个Groovy测试脚本以使用辅助Java类

时间:2018-01-30 21:44:20

标签: java gradle groovy import

我正在尝试弄清楚如何在测试阶段使用Groovy测试脚本导入Java类...

具体来说,我想使用来自hereJavaFXThreadingRule:。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如何决定执行任务compileTestJavacompileTestGroovy的顺序......以及我是否应该让我的{ {1}}明确依赖于compileTestGroovy ...

1 个答案:

答案 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测试编译任务是完全分开的,并且不能看到""彼此的课程......