pitest - PIT требует либо JUnit 4 (но может запускать тесты JUnit 3), либо TestNG

Я пытаюсь применить мутационное тестирование на Apache Airavata (v0.16), используя pitest. Я добавил следующие строки в файл pom.xml под тегом plugins сборки:

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.1.11</version>
 </plugin>

Это дает мне следующую ошибку.

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.012 s
[INFO] Finished at: 2017-03-30T14:27:44+03:00
[INFO] Final Memory: 21M/212M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.pitest:pitest-maven:1.1.11:mutationCoverage (default-cli) on project airavata-server-configuration: Execution default-cli of goal org.pitest:pitest-maven:1.1.11:mutationCoverage failed: No test library found on classpath. PIT requires either JUnit 4 (but can run JUnit 3 tests) or TestNG
[ERROR] See http://pitest.org for more details.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :airavata-server-configuration

У меня нет TestNG, но путь junit4 включен в CLASSPATH. Я попытался предоставить несколько целевых тестовых случаев, как показано ниже, но это тоже не сработало.

<plugin>
    <groupId>org.pitest</groupId>
    <artifactId>pitest-maven</artifactId>
    <version>1.1.11</version>
    <configuration>
        <targetTests>
            <param>org.apache.archiva.common.utils*</param>
        </targetTests> 
    </configuration>
</plugin>

Я также попробовал следующий тег, но это не помогло вообще.

<failWhenNoMutations>false</failWhenNoMutations>

1 ответ

Решение

Архива, кажется, содержит ряд модулей, которые не содержат источника или тестов.

Выпуск pitest версии 1.1.12 автоматически пропустит их (см. 314), но пока он не будет выпущен, вам нужно будет установить свойство skip в каждом модуле, который не содержит тестов.

Другие вопросы по тегам