使用IntelliJ IDEA 14.0.2,我已经导入了gradle java项目。我们已经设置了sourceSet和配置,以将集成测试与单元测试分开。 (我们的集成测试在测试源树中,但在其自己的程序包中)。 build.gradle中的相关位是:

sourceSets {
  test {
    java {
      exclude '**/it/**'
    }
  }

  integTest {
    java {
      srcDir 'src/test/java'
      include '**/it/**'
    }
    resources {
      srcDir 'src/test/resources'
    }
    compileClasspath += sourceSets.main.output + sourceSets.test.output + configurations.testRuntime
    runtimeClasspath += sourceSets.main.output + sourceSets.test.output + configurations.testRuntime
  }
}

configurations {
  integTestCompile.extendsFrom testCompile
  integTestRuntime.extendsFrom testRuntime
}

idea {
  module {
    scopes.TEST.plus += [ configurations.integTestCompile ]
  }
}

task integTest(type: Test) {
  testClassesDir = sourceSets.integTest.output.classesDir
  classpath = sourceSets.integTest.runtimeClasspath
}

从命令行可以正常工作。但是,当我在IntelliJ中打开集成测试的源并右键单击以运行它时,IntelliJ将启动“测试”任务而不是“integTest”任务。如何让IntelliJ启动正确的任务?

或者,如何根据“--tests” arg的内容使测试任务委托(delegate)给另一个任务?

最佳答案

请遵循以下步骤:gradle设置> Gradle> Runner并选中Delegate IDE构建/运行操作以进行gradle。然后申请并确定。

祝好运!

08-16 12:26