Подтвердить что ты не робот

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) для меня не работает.

4b9b3361

Ответ 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.