Idea Gradle集成将类添加为测试源代码树,但不要';不包括在测试源集中

Idea Gradle集成将类添加为测试源代码树,但不要';不包括在测试源集中,gradle,intellij-idea,source-sets,Gradle,Intellij Idea,Source Sets,我想将systest源集中的类标记为单元测试类。我尝试用以下代码标记它们: sourceSets { main { groovy { srcDirs = [ 'src/main/masks' } resources { srcDirs += 'src/main/journaltemplates' } } /* This brings up systest in the test resources

我想将systest源集中的类标记为单元测试类。我尝试用以下代码标记它们:

sourceSets {
  main {
    groovy {
      srcDirs = [
              'src/main/masks'
    }

    resources {
      srcDirs += 'src/main/journaltemplates'
    }
  }

  /* This brings up systest in the test resources */
  test.java.srcDir 'src/systest/java'
  test.resources.srcDir 'src/systest/resources'

  systest {
    java {
      srcDirs = ['src/systest/java']
    }

    resources {
      srcDirs = ['src/systest/resources']
    }
  }
}
使用此解决方案,源集被标记为单元测试类,但被额外添加到不需要的测试源集中。我希望将这些类保留在systest源集中,并指定systest源集中是一个单元测试源集中。我希望systest源集的行为与测试源集的行为相同,但它们应该是不同的源集


我尝试的第二个解决方案是使用gradle的idea插件并修改模块设置,如图所示:

此解决方案的问题是systest源也被添加到测试源集中


希望这足够清楚,否则请评论。谢谢。

请尝试此配置:

apply plugin: "idea"
sourceSets {
    systest {

        java {
            compileClasspath = test.output + main.output
            runtimeClasspath = output + compileClasspath 
        }
    }

}

idea {
    module {
        testSourceDirs = sourceSets.systest.allSource.srcDirs
    }
}

但是srcDirs=['src/systest/java']不见了吗?而且它似乎不起作用。未标记为测试源:-/
apply plugin: "idea"
sourceSets {
    systest {

        java {
            compileClasspath = test.output + main.output
            runtimeClasspath = output + compileClasspath 
        }
    }

}

idea {
    module {
        testSourceDirs = sourceSets.systest.allSource.srcDirs
    }
}