如何从IntelliJ上下文菜单中为gradle项目运行集成测试?

时间:2015-02-04 05:59:50

标签: unit-testing intellij-idea gradle

使用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启动正确的任务?

或者,如何根据" - 测试"的内容使测试任务委托给另一个任务。 ARG?

2 个答案:

答案 0 :(得分:0)

右键单击文件上的测试,您会看到Create Run Configuration >的菜单选项。在对话框中选择一个,修改Tasks选项。将其更改为integTest,然后单击“确定”。从那时起,您可能必须使用菜单系统而不是上下文系统来运行测试。即Run > Run...

答案 1 :(得分:0)

遵循此步骤:gradle设置> Gradle> Runner并选中“委托IDE生成/运行操作”以进行gradle。然后申请,确定。

祝你好运!