当前位置: 首页 > 知识库问答 >
问题:

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

向杜吟
2023-03-14

使用IntelliJ IDEA 14.0.2,我导入了一个gradle java项目。我们已经建立了一个源集和配置来将集成测试与单元测试分开。(我们的集成测试在测试源树中,但在它们自己的包中)。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
}

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

共有1个答案

戎兴言
2023-03-14

遵循以下步骤:gradle settings>gradle>Runner,并选中Delegate IDE构建/运行操作to gradle。然后申请就可以了。

祝你好运!

 类似资料:
  • 我有一个gradle多项目,我的war文件构建在一个子项目中,我的集成测试在另一个子项目中。我已经读到gretty应该能够启动jetty实例,让我在构建期间运行集成测试,但我不知道如何将gretty integrationTestTask任务“连接”到另一个子项目中的任务,从中运行实际测试。 我的项目结构如下所示: 根目录/设置。格雷德尔: 根/构建。格雷德尔: root/web/build。格雷

  • 我错过了什么? 编辑: 看来Gradle也不接我的测试。当我转到时,它指示0 test。 在IntelliJ中,我打开Gradle窗口,点击“刷新所有Gradle项目”按钮,刷新库。 然后在我的测试类中,我在类声明的顶部添加了。 当我执行时,结果可以在下面找到:

  • 我试图使用Gradle的标志运行单个集成测试。我添加了另一个源代码集,并将测试放入其中。我有一个集成测试任务 这运行得很好,但是如果我尝试运行一个测试,它会告诉我它找不到匹配的测试。我不想每次编写一个新的集成测试时都必须运行每个集成测试。有办法做到这一点吗?

  • 我有一个Spring Boot项目,其中定义了几个apiendpoint。我目前正在为每个API编写集成测试。我的测试类注释如下。 现在,对于我的每个测试类,都会设置一个新的上下文来执行它们,这需要时间。我更喜欢将每个apiendpoint的测试用例保存在单独的类中,以便在逻辑上组织它们,但我不希望每次添加新的控制器类和相应的测试类时,我的测试执行时间都会猛增。我在这里做错了什么?

  • 在我的多项目中,我正在根项目上运行测试任务,并期望它将在子项目上运行测试任务并生成一个测试报告。我观察到的是,它从来没有在子项目上运行测试任务。我的期望是不正确的吗?“我需要在我的gradle脚本中进行任何特殊配置吗? 请注意,我的根项目中没有测试。

  • 我必须能够从长列表选择器中访问该数据。删除事件处理程序来自上下文菜单按钮 此代码能够引用长列表选择器中的选项。感谢文卡塔帕蒂·拉朱的帮助 私有void LongListSelector_SelectionChanged(对象发送者,SelectionChangedEventArgs e){LongListSelector选择器=发送者作为longlist选择器; 我得到了这个错误消息,是一个“Sy