Питест: как правильно указать пути в разных модулях

У меня есть огромный проект, для которого я тестирую мутационное тестирование с помощью Pitest. Проект находится в форме OSGi, и все модули разделены. У меня есть эта структура:

|-1.myProgramm-parent
 |-pom.xml
 |-2.myProgramm.module1
  |-pom.xml
 |-2.myProgramm.module1.Test
  |- pom.xml
 |-3.myProgramm.module2
  |-pom.xml
 |-3.myProgramm.module2.Test
   |-pom.xml
... и так далее .

Теперь я закинул в pom.xml из моего 1.myProgramm-parent все нужные мне конфигурации PITEST (взято с официального сайта pitest.org). targetClasses и targetTests находятся в pom.xml 2.myProgramm.module1.Test, который мне нужно использовать.

Питест находит все 7 тестовых классов миньонам. И посылает их. Тогда gathering for test description тоже нормально. Coverage generator Minion excited ok. Затем: created 0 mutation test units.

И показан сбой сборки. No mutations found.

Я уже попробовал все возможные аннотации, представленные на pitest.org, например: targetClasses, targetTests и additionalClasspathElements.

Как я могу сказать, что тестовые классы находятся в этой папке 2.myProgramm.module1.Test, где я устанавливаю targetClasses, targetTests в pom.xml. НО обычные javaClasses, которые будут миньонированы, находятся в этом пакете: 2.myProgramm.module1

Как я могу сказать, выйти из вашей папки test и попасть в папку вверх?

Я тоже дал чистый путь к папке с нормальными javaClasses, но НИКАКОЙ реакции.

У вас есть идея?

Пс. Это не моя программа. Я этого не писал. Я просто работаю над этим, чтобы проверить. У меня уже есть 11 других программ с Maven и Gradle. Я получаю все к миньону. Но это такая боль в заднице! АРГ!


person J K Fan    schedule 23.04.2020    source источник


Ответы (1)


Если вы работаете с многомодульными проектами, вам нужно будет использовать плагин pitmp (https://github.com/STAMP-project/pitmp-maven-plugin).

Это связано с тем, что сам PIT изменяет только классы, определенные в том же модуле, что и тесты. Напротив, pitmp будет выполнять тесты для всех классов модулей. Более подробная информация представлена ​​по ссылке выше.

person nrainer    schedule 23.04.2020
comment
Спасибо за совет!! У меня теперь более глубокий вопрос. Я поместил это <plugin> <groupId>eu.stamp-project</groupId> <artifactId>pitmp-maven-plugin</artifactId> <version>1.3.7</version> </plugin> в свою родительскую помпу. Но это все еще не работает. Как я могу задать вопрос, опубликовав весь параметр моего плагина из pom? Потому что здесь раздел комментариев слишком короткий? Должен ли я открыть новый вопрос в stackoverflow? - person J K Fan; 23.04.2020
comment
Подходит ли версия pitmp к используемой версии PIT (см. раздел Релизы)? Вы используете mvn eu.stamp-project:pitmp-maven-plugin:run как команду Maven? Если это не работает, вам следует открыть новый вопрос и предоставить более подробную информацию. - person nrainer; 23.04.2020
comment
О боже... Это так неловко. Я не читал весь документ. Я сделаю это прямо сейчас. Если это все еще не сработает, вы увидите новый вопрос. :) - person J K Fan; 24.04.2020