Surefire не запускает тест в src/main/java
Мне нужно было переместить некоторые src/test/java в src/main/java в соответствии с этой рекомендацией из документации maven-jar-plugin = > http://maven.apache.org/plugins/maven-jar-plugin/usage.html
Я сделал это, потому что я использовал тесты (вспомогательные) в других проектах в области проверки.
Итак, я создаю свой проект-тест, перемещается в тестовых классах и настраивает surefire, чтобы указать каталог классов тестов = >
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testSourceDirectory>${basedir}\src\main\java\</testSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
Но когда я запустил mvn test, выполняется 0 тестов = >
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
Проблема такая же, как эта = > Maven не находит тесты JUnit для запуска, но решение (настроить плагин surefire maven) для меня не работает.
Ответы
Ответ 1
Хорошая конфигурация для плагина maven surefire = >
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory>
<testClassesDirectory>${project.build.directory}/classes/</testClassesDirectory>
</configuration>
</plugin>
</plugins>
</build>
Results :
Tests run: 20, Failures: 0, Errors: 0, Skipped: 0
Ответ 2
Поскольку тестовые классы теперь помещены в src/main/java
, вполне вероятно, что они собираются на этапе компиляции до target/classes
.
Итак, хотя surefire сконфигурирован, чтобы указать, что местоположение источника теста src/main/java
, оно все равно будет искать тестовые классы в target/test-classes
, так как это место по умолчанию для тестовых классов.
Вы можете попробовать указать testClassesDirectory параметр и посмотреть, работает ли он.
Кроме того, я думаю, что вы, возможно, неверно истолковали рекомендацию в документации плагина maven jar. Я не верю, что они предлагают переносить источники тестов на src/main/java
.