Питест не может определить класс теста
У меня есть проблемы с моей конфигурацией Maven и Питес.
Мутация Pitest поколения в порядке, но он не может видеть мой класс теста..
если у вас есть решение:D
У меня есть основной источник, как это /src/main/java/com.plugin..... .java
У меня есть такой тестовый источник /src/test/java/com.plugin.... .java
Конфигурация pom.xml:
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.1.9</version>
<configuration>
<targetClasses>
<param>com.plugin.business.centre*</param>
</targetClasses>
<targetTests>
<param> com.plugin.business.centre*</param>
</targetTests>
</configuration>
</plugin>
в
[INFO] --- pitest-maven:1.1.9:mutationCoverage (default-cli) @ Polux ---
[INFO] Found plugin : Default csv report plugin
[INFO] Found plugin : Default xml report plugin
[INFO] Found plugin : Default html report plugin
[INFO] Found plugin : Default limit mutations plugin
[INFO] Found shared classpath plugin : Default mutation engine
[INFO] Adding org.pitest:pitest to SUT classpath
[INFO] Mutating from /Users/Mods/Documents/*****/target/classes
08:35:36 PIT >> INFO : Verbose logging is disabled. If you encounter an problem please enable it before reporting an issue.
08:35:36 PIT >> INFO : MINION : objc[677]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be us
08:35:36 PIT >> INFO : MINION : ed. Which one is undefined.
08:35:37 PIT >> INFO : Sending 0 test classes to minion
08:35:37 PIT >> INFO : Sent tests to minion
08:35:37 PIT >> INFO : MINION : 08:35:37 PIT >> INFO : Checking environment
08:35:37 PIT >> INFO : MINION : 08:35:37 PIT >> INFO : Found 0 tests
08:35:37 PIT >> INFO : MINION : 08:35:37 PIT >> INFO : Dependency analysis reduced number of potential tests by 0
08:35:37 PIT >> INFO : MINION : 08:35:37 PIT >> INFO : 0 tests received
08:35:37 PIT >> INFO : Calculated coverage in 0 seconds.
08:35:37 PIT >> INFO : Created 20 mutation test units
1 ответ
Мне нужно добавить плагин junit5 в качестве зависимости (как я использую JUnit 5).
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.4.5</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>0.8</version>
</dependency>
</dependencies>
<configuration>
...
</configuration>
</plugin>
Для людей, достигших этого вопроса с той же проблемой:
Я столкнулся с той же проблемой, и я исправил ее, запустив mvn test
перед питест.
Pitest так или иначе нуждается в том, чтобы эти тесты были выполнены по крайней мере один, чтобы найти их.
Это не работало, когда мы перешли с Junit4 на Junit5. Прямая поддержка Junit5 отсутствует. Решение - использовать плагин от pitest для Junit5. См. https://github.com/pitest/pitest-junit5-plugin.
plugins {
id 'java'
id 'info.solidsoft.pitest' version '1.5.1'
}
pitest {
//adds dependency to org.pitest:pitest-junit5-plugin and sets "testPlugin" to "junit5"
junit5PluginVersion = '0.12'
// ...
}
Мои тесты не были обнаружены, потому что я использовал встроенный в Java
assert
, например:
assert 1 + 2 == 3;
Когда я изменил его на JUnit:
import static org.junit.Assert.assertEquals;
assertEquals(1 + 2, 3);
PITest работает как положено. Я не стал копать глубже, почему так работает.
Pitest не может найти testPlugin автоматически, установите его вручную:
для мавена:
<testPlugin>
<value>junit5</value>
</testPlugin>
для gradle:
pitest {
testPlugin = "junit5" //or another test plugin
...
}