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

gijlo24d  于 2023-01-13  发布在  其他
关注(0)|答案(3)|浏览(177)

使用IntelliJ IDEA 14.0.2,我导入了一个gradle java项目。我们设置了一个sourceSet和配置,以将集成测试与单元测试分开。(我们的集成测试位于测试源代码树中,但在它们自己的包中)。

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启动“test”任务而不是“integTest”任务。如何让IntelliJ启动正确的任务?
或者,我如何根据“--tests“参数的内容将测试任务委托给另一个任务?

wnvonmuf

wnvonmuf1#

请遵循以下步骤:gradle设置〉Gradle〉Runner,然后选中将IDE构建/运行操作委托给gradle。
祝你好运!

vaj7vani

vaj7vani2#

右键单击文件上的测试,您应该会看到Create Run Configuration >的菜单选项。在对话框中选择该选项,修改Tasks选项。将其更改为integTest,然后单击OK。此时,您可能必须使用菜单系统而不是上下文系统运行测试,例如Run > Run...

au9on6nz

au9on6nz3#

我的解决方案是将IntelliJ配置为不使用Gradle作为测试运行器,而是使用内置的JUnit运行器执行测试。这只是IntelliJ IDEA中Gradle设置的一个配置选项。
详情请访问www.example.com。https://www.jetbrains.com/help/idea/gradle-settings.html#gradle_tests for details.

相关问题