Как заставить Pitest работать с многомодульным проектом с огуречными тестами, которые находятся в отдельном модулеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как заставить Pitest работать с многомодульным проектом с огуречными тестами, которые находятся в отдельном модуле

Сообщение Anonymous »

Примерная структура проекта у меня такая:
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»