intelliJ 运行 gradle 任务如何作为测试

How can intelliJ run gradle task as test

我有一个 gradle 项目,其中 "unit test" 和 "integration tests" 任务定义如下:

test {
  include '**/*Test.class'
}

task integrationTest(type: Test) {
  include '**/*IT.class'
}

我在 IntelliJ 中创建了一个 运行 配置来 运行 所有单元测试,如图所示:

并对任务'integrationTest':

做了同样的事情

IntelliJ 'understands' 测试任务和 运行 它显示图形结果,如下图所示:

当它 运行 是 'integrationTest' 任务时,不会发生同样的情况。结果以文本形式显示,就像我 运行 通过命令行执行任务时一样。

回答我自己的问题... 据我所知,您无法让 IntelliJ 对特定任务进行 运行 测试,而且模式解决方案效果不佳。

因此,我发现在 IntelliJ 中有效分离集成测试的唯一方法是使用 JUnit 类别。

  1. 创建一个接口来表示集成测试。 例如:

    public interface IntegrationTest {
    }
    
  2. 您必须使用类别注释和创建的接口来注释每个集成测试class:

    import org.junit.experimental.categories.Category;
    import mycompany.mypackage.IntegrationTest;
    
    @Category(IntegrationTest.class)
    public class DbfFileProcessorIT {
        ...
    }
    
  3. 使用类别创建构建配置过滤:

只需将 idea 插件添加到 gradle 对我有用

plugins {
    idea
}