首页 文章

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

提问于
浏览
0

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

具体来说,我想使用来自hereJavaFXThreadingRule :.java文件(或者更确切地说here以及我的Java测试源路径中包含的内容),然后在我的Groovy测试脚本中使用 import 作为注释 .

Groovy测试脚本路径是src \ test \ ft \ groovy \ core \ testscript.groovy .
.java文件是src \ test \ ft \ java \ core \ JavaFXThreadingRule.java .
我在两者中使用的包装线都是"package core;"
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 ...以及我是否应该让我的 compileTestGroovy 显然依赖于 compileTestJava ...

1 回答

  • 0

    感谢Tim Yates,我找到了将这个Java文件放在Groovy中的"workaround" ...但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测试编译任务是完全独立的,不能“看到”彼此的类......

相关问题