【问题标题】:Gradle: get a Groovy test script to use an auxiliary Java classGradle:获取 Groovy 测试脚本以使用辅助 Java 类
【发布时间】:2018-07-09 21:44:21
【问题描述】:

我正在尝试研究如何在测试阶段获得一个 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 列。 导入 core.JavaFXThreadingRule ^

注意,我也尝试过“import JavaFXThreadingRule”——结果相同。

除了只想解决问题之外,我还想知道 Gradle 如何决定以什么顺序执行任务 compileTestJavacompileTestGroovy... 以及我是否不应该让我的 compileTestGroovy 显式依赖在compileTestJava...

【问题讨论】:

  • 将Java文件粘贴到你的Groovy路径下
  • @Ori Dar 该类文件(以及它生成的其他 3 个)实际上位于 build\classes\java\test 下(这是一台 Windoze 机器)。
  • @tim_yates...哈...谢谢,工作。我最初尝试过,但我认为我犯了不包括包装声明的错误。现在我把它放进去。 compileTestGroovy 任务无法从 compileTestJava 任务中获取和使用类似乎仍然有点令人费解。叹息:我有很多关于 Gradle 的知识。
  • 认为这是一个 groovy 编译器的东西,不一定是 gradle 的东西。很高兴它有效

标签: java gradle groovy import


【解决方案1】:

感谢 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 测试编译任务是完全独立的,并且无法“看到”彼此的类...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多