Gradle从不同的模块运行Spock集成测试

时间:2018-04-18 10:48:08

标签: java gradle groovy spock

我在不同的模块中进行了集成测试,但是我有单个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
}

1 个答案:

答案 0 :(得分: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'。