我试图让 Gradle (2.1) 和 IntelliJ (14.0.2) 玩得很好。具体来说,我已经将一个包含用于集成测试的单独源集的示例 Gradle 项目导入 IntelliJ。
该项目在命令行上使用 Gradle 构建良好,并且我能够成功运行集成测试。另一方面,在 IntelliJ 中运行时,我有两个问题:
1) 在 IntelliJ 中编译失败,因为集成测试依赖于无法解析的第三方库(commons-collections)。
2)如果我删除上面的依赖并编译,我无法在 IntelliJ 中运行集成测试。我收到以下错误消息:
没有找到给定的测试包括:[org.gradle.PersonIntegrationTest.canConstructAPersonWithAName]
文件结构如下所示:
src
integration-test
java
resources
main
java
resources
test
java
resources
build.gradle
和 build.gradle:
apply plugin: 'java'
repositories {
mavenCentral()
}
sourceSets {
integrationTest {
java.srcDir file('src/integration-test/java')
resources.srcDir file('src/integration-test/resources')
}
}
dependencies {
testCompile 'junit:junit:4.11'
integrationTestCompile 'commons-collections:commons-collections:3.2'
integrationTestCompile sourceSets.main.output
integrationTestCompile configurations.testCompile
integrationTestCompile sourceSets.test.output
integrationTestRuntime configurations.testRuntime
}
task integrationTest(type: Test, dependsOn: jar) {
testClassesDir = sourceSets.integrationTest.output.classesDir
classpath = sourceSets.integrationTest.runtimeClasspath
systemProperties['jar.path'] = jar.archivePath
}
check.dependsOn integrationTest
任何关于如何完成这项工作的想法将不胜感激。
完整的 Gradle 示例项目在 Gradle 发行版中,位于 samples/java/withIntegrationTests