Интеграция Idea Gradle добавляет классы как тестовое исходное дерево, но не включает тестовый sourceSet - PullRequest
0 голосов
/ 03 сентября 2018

Я хотел бы отметить классы моего систематического 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']
    }
  }
}

С этим решением исходный набор был помечен как класс модульного тестирования, но был дополнительно добавлен в набор исходных текстов теста, что нежелательно. Я хочу сохранить классы в systest sourceSet и указать, что systest sourceSet, является модульным тестом sourceSet. Мне нужно то же поведение для систематического sourceSet, что и для тестового sourceSet, но они должны быть разными sourceSets.


Вторым решением, которое я попробовал, было использование плагина идеи для Gradle и изменение настроек модуля, как показано в этом посте SO :

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

Проблема с этим решением состоит в том, что систематические источники также добавляются в набор тестовых источников.

Надеюсь, это достаточно ясно, в противном случае, пожалуйста, прокомментируйте. Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2018

Пожалуйста, попробуйте эту конфигурацию:

apply plugin: "idea"
sourceSets {
    systest {

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

}

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