使用 gradle 将 jar 包含到集成测试中
Include jar to integration tests using gradle
我想在我的集成测试中包含一个外部 .jar。
它位于我的 "lib" 文件夹中,因此我添加了 integrationTestCompile 的依赖项,但是当我在集成测试中使用 jar 中包含的任何 class 时,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)
我想在我的集成测试中包含一个外部 .jar。
它位于我的 "lib" 文件夹中,因此我添加了 integrationTestCompile 的依赖项,但是当我在集成测试中使用 jar 中包含的任何 class 时,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)