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

问题描述 投票:0回答:1

我想将我的系统sourceSet的类标记为单元测试类。我尝试使用以下代码标记它们:

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']
    }
  }
}

使用此解决方案,源集标记为单元测试类,但另外添加到测试源集中,这是不需要的。我想保留系统sourceSet中的类,并指定systest sourceSet是一个单元测试sourceSet。我想要系统的sourceSet和测试源集相同的行为,但它们应该是不同的sourceSets。


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

idea {
  module {
    testSourceDirs += file('src/systest')
  }
}

该解决方案的问题在于系统源也被添加到测试源集中。

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

gradle intellij-idea source-sets
1个回答
0
投票

请尝试以下配置:

apply plugin: "idea"
sourceSets {
    systest {

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

}

idea {
    module {
        testSourceDirs = sourceSets.systest.allSource.srcDirs
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.