Gradle-эквивалент Surefire classpathDependencyExclude
Я пытаюсь перенести Java-проект из Maven в Gradle. В настоящее время проблема заключается в очень сложной настройке зависимостей пути к классам для тестов.
Наша конфигурация maven-surefire-plugin:
<includes>
<include>**/SomeTest1.java</include>
</includes>
<classpathDependencyExcludes>
<classpathDependencyExclude>com.sun.jersey:jersey-core</classpathDependencyExclude>
</classpathDependencyExcludes>
Существуют разные классы для разных тестовых классов. Как я могу реализовать это с Gradle?
2 ответа
Прежде всего, вам нужно разделить источники ваших тестов на отдельные исходные наборы. Скажем, нам нужно запускать тесты из пакета org.foo.test.rest с немного отличным от времени выполнения классовым путем, чем другие тесты. Таким образом, его выполнение пойдет в otherTest, где остаются тесты:
sourceSets {
otherTest {
java {
srcDir 'src/test/java'
include 'org/foo/test/rest/**'
}
resources {
srcDir 'src/test/java'
}
}
test {
java {
srcDir 'src/test/java'
exclude 'org/foo/rest/test/**'
}
resources {
srcDir 'src/test/java'
}
}
}
После этого вы должны убедиться, что otherTest имеет все необходимые пути к классам компиляции и времени выполнения:
otherTestCompile sourceSets.main.output
otherTestCompile configurations.testCompile
otherTestCompile sourceSets.test.output
otherTestRuntime configurations.testRuntime + configurations.testCompile
Последнее, что нужно исключить (или включить) ненужные пакеты времени выполнения из теста:
configurations {
testRuntime {
exclude group: 'org.conflicting.library'
}
}
И создать задачу Test Gradle для otherTest:
task otherTest(type: Test) {
testClassesDir = sourceSets.otherTest.output.classesDir
classpath += sourceSets.otherTest.runtimeClasspath
}
check.dependsOn otherTest
Используйте следующий обходной путь:
- Создать исходный набор для необходимых тестов
- Добавить конфигурации для созданного sourceSet
- Добавить задачу для запуска теста с пользовательской конфигурацией
- Настроить тестовое задание в зависимости от настроенного тестового задания
- Настроить плагин Report для создания красивого HTML-отчета:)
Как это начало