project/
├── module-with-java-code/
│ ├── main
│ ├── test
│ └── build.gradle
├── module-with-cucumber-features/
│ ├── features [test]/
│ │ ├── feature-test-folder-1/
│ │ │ ├── test-1.feature
│ │ │ └── -...
│ │ └── ...
│ ├── test/
│ │ ├── glue/
│ │ │ └── glues...
│ │ ├── TestNgCucumberTest for feature-test-folder-1
│ │ └── ...
│ └── build.gradle
├── way more more modules...
└── build.gradle
Я хочу выполнить Pitest для кода в модуле с Java-кодом, но я хочу запустить его с тестами внутри его собственного модуля и< /strong> тестируется функция из модуля с огуречными функциями.
Версии, которые я использую:
- градус: 8.11.1
- pitest-gradle-plugin: 'info.solidsoft.pitest' версия '1.15.0'
- pitest-testng-plugin: 'org.pitest:pitest-testng- плагин: 1.0.0'
- pitest-junit5-plugin: 'org.pitest:pitest-junit5-plugin:1.2.1'
- cucumber
'io.cucumber:cucumber-jvm-deps:1.0.6', - 'io. огурец: огурец-picocontainer: 7.20.1',
- 'io.cucumber:cucumber-java:7.20.1',
- 'io.cucumber:cucumber-testng:7.20.1',
- 'me.jvt.cucumber:reporting-plugin:7.11.0'
Я пытался следовать документации по gradle-pitest-plugin вместе с многомодульным примером
Я ожидал, что он распознает тесты огурца (например, TestNgCucumberTest) и для каждой мутации выполнить тесты огурца и модульные тесты.
Однако у меня возникли некоторые проблемы с конфигурацией:
Я пытался настроить его в модуль-с-огуречными функциями
Здесь выдается ошибка: мутации не найдены
configure(project(':module-with-cucumber-features')) {
apply plugin: 'info.solidsoft.pitest'
dependencies {
implementation project(':module-with-java-code')
}
configurations { mutableCodeBase { transitive false } }
dependencies { mutableCodeBase project(':module-with-java-code') }
pitest {
mutators = ["ALL"]
mainSourceSets = [project(':module-with-java-code').sourceSets.main]
testSourceSets = [sourceSets.test]
targetTests = ['com.example.TestNgCucumberTest']
additionalMutableCodePaths = [configurations.mutableCodeBase.singleFile]
}
}
Я пытался настроить его в корневом проекте
Здесь выдает ошибку: «Не удалось получить «реализацию» неизвестного свойства для контейнера конфигурации для проекта «:module-with-» java-код' типа org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer"
configure(project(':module-with-cucumber-features')) {
apply plugin: 'info.solidsoft.pitest'
apply plugin: 'java'
dependencies {
implementation project(':module-with-java-code')
}
//Additional configuration to resolve :module-with-java-code project JAR as mutable code path for PIT
configurations {
mutableCodeBase { transitive false }
dependencies {
mutableCodeBase.extendsFrom(project(':module-with-java-code').configurations.implementation)
}
}
pitest {
timestampedReports = false
mainSourceSets = [project.sourceSets.main, project(':module-with-java-code').sourceSets.main]
//Generates deprecation warning in Gradle 5.6+
//Asked for recommendation: https://discuss.gradle.org/t/accessing- ... ings/35048
additionalMutableCodePaths = configurations.mutableCodeBase.files
// additionalMutableCodePaths = project(':module-with-java-code').jar.outputs.files.getFiles() //Workaround
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... sts-that-a