使用gradle将jar包含到集成测试中

时间:2016-02-20 12:02:31

标签: java eclipse gradle integration-testing

我想在我的集成测试中包含一个外部.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'])
}

对此的任何想法都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

integrationTest不是java插件添加的标准配置。这是插件添加的内容:

enter image description here

Learn more about gradle java plugin here

因此,除非您定义了自己的名为integrationTest的配置,否则只需将集成测试依赖项添加到testCompile

或者,您可以添加自己的配置:

configurations{
    integrationTest
}

但是你仍然需要通过这样做将所有integrationTestCompile依赖项添加到testCompile:

testCompile.extendsFrom(integrationTestCompile)