我想将集成测试添加到我的Gradle版本(1.0版)中。它们应与我的常规测试分开运行,因为它们需要将webapp部署到本地主机(它们测试该webapp)。这些测试应该能够使用在我的主要源代码集中定义的类。我如何做到这一点?

最佳答案

2021年更新:
在8ish年中发生了很多变化。 Gradle仍然是一个很好的工具。现在,文档中有一整节专门用于配置集成测试。我现在建议您read the docs
原答案:
这花了我一段时间才能弄清楚,在线资源也不是很好。所以我想记录我的解决方案。
这是一个简单的gradle构建脚本,除了主要和测试源集之外,还具有intTest源集:

apply plugin: "java"

sourceSets {
    // Note that just declaring this sourceset creates two configurations.
    intTest {
        java {
            compileClasspath += main.output
            runtimeClasspath += main.output
        }
    }
}

configurations {
    intTestCompile.extendsFrom testCompile
    intTestRuntime.extendsFrom testRuntime
}

task intTest(type:Test){
    description = "Run integration tests (located in src/intTest/...)."
    testClassesDir = project.sourceSets.intTest.output.classesDir
    classpath = project.sourceSets.intTest.runtimeClasspath
}

10-04 11:08