我想在集成测试中包含一个外部.jar。
它位于我的“lib”文件夹中,因此我为IntegrationTestCompile添加了依赖项,但是当我在集成测试中使用jar中包含的任何类时,Eclipse会抱怨。
这是我的build.gradle的示例:
sourceSets {
main {
resources {
srcDir "src/main/resources"
}
}
test {
resources {
srcDir "src/test/java"
}
}
integrationTest {
java {
srcDir 'src/integrationTest/java'
}
resources {
srcDir 'src/integrationTest/resources'
}
compileClasspath += sourceSets.main.runtimeClasspath
}
}
task iTest(type: Test) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath += sourceSets.integrationTest.runtimeClasspath
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//Unit test dependencies
testCompile 'org.mockito:mockito-core:1.+'
testCompile 'junit:junit:4.12'
//Integration test dependencies
integrationTestCompile fileTree(dir: 'libs', include: ['*.jar'])
}
任何想法,将不胜感激。
最佳答案
integrationTest
不是Java插件添加的标准配置。插件确实添加了以下内容:
(Learn more about gradle java plugin here)
因此,除非您定义了自己的名为IntegrationTest的配置,否则应仅将集成测试依赖项添加到testCompile
中。
或者,您可以添加自己的配置:
configurations{
integrationTest
}
但是您仍然必须通过执行以下操作将所有IntegrationTestCompile依赖项添加到testCompile:
testCompile.extendsFrom(integrationTestCompile)