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

标签 java gradle groovy import

我正在尝试找出如何在测试阶段获取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如何决定执行compileTestJavacompileTestGroovy任务的顺序...以及我是否不应该使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/

相关文章:

java - Firestore Android 分页中的 ArrayIndex 错误

android - 将 Gradle 与现有的 Android 项目结合使用

java - groovy 脚本 eval(string) 方法的性能问题

xml - 如何解析文件夹中的 XML 文件以映射 String,List<String>

java - Printwriter 输出不接受 .printf 格式化程序到文件?

java - 如何在 Spring MVC 中监视执行器或其他任务执行线程

java - 我需要帮助混淆我的 Java 项目

java - 命令的输出未显示在 gradle 测试报告的标准输出中

java - 重复类条目的 TransformException

jenkins - 在 Jenkins 脚本化管道方法中检查数组中的空指针异常