【问题标题】:Gradle running Spock integration test from a different moduleGradle 从不同的模块运行 Spock 集成测试
【发布时间】:2018-04-18 10:48:07
【问题描述】:

我在不同的模块中进行了集成测试,但是我只有一个 gradle.build 文件。

当我运行gradle clean integrationTest 时,我收到以下错误

Task :integrationTest NO-SOURCE Skipping task ':integrationTest' as it has no source files and no previous output files. 在日志中,我看到以下内容:

file or directory '<MyPath>/MyService/src/integrationTest/groovy'', not found

但是路径应该是<MyPath>/MyService/integrationTest/src/test/groovy

我的 gradle.build 文件有以下内容:

sourceSets {
    integrationTest {
        groovy {
            srcDir 'integration-test/src/test/groovy'
        }
        resources {
            srcDir 'integration-test/src/test/resources'
        }
    }
 }

task integrationTest(type: Test) {
    testClassesDir = sourceSets.integrationTest.output.classesDir
    classpath = sourceSets.integrationTest.runtimeClasspath
}

【问题讨论】:

  • 为什么将集成测试作为单独的“模块”,而不是作为 Gradle 项目?

标签: java gradle groovy spock


【解决方案1】:

srcDir(<path>) 的形式附加另一个源路径。所以Gradle还是会在src/integrationTest/groovy中搜索,也就是常规路径。

如果要替换约定,请使用

sourceSets {
    integrationTest {
        groovy {
            srcDirs = [file('integration-test/src/test/groovy')] as Set
        }
        resources {
            srcDirs = [file('integration-test/src/test/resources')] as Set
        }
    }
}

但是,无需删除常规路径。我想知道您的路径是否正确,因为您在帖子中说路径应包含“integrationTest”,但您在示例代码中指定了“integration-test”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2017-12-19
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多