我将集成测试放在其他模块中,但是只有单个gradle.build文件。

当我运行gradle clean integrationTest时,出现以下错误
Task :integrationTest NO-SOURCESkipping 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
}

最佳答案

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”。

09-05 16:35