Surefire не запускает тест в src / main / java - PullRequest
22 голосов
/ 24 января 2012

Мне нужно было переместить некоторые src / test / java в src / main / java в соответствии с этой рекомендацией из документации по maven-jar-plugin => http://maven.apache.org/plugins/maven-jar-plugin/usage.html

Я сделал это, потому что я использовал тестовые (вспомогательные) классы в других проектах в области тестирования.

Итак, я создаю my-project-test, перемещаюсь в тестовые классы и настраиваю верное указание каталога тестовых классов =>

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

Ответы [ 2 ]

29 голосов
/ 25 января 2012

Хорошая конфигурация для плагина 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
1 голос
/ 25 января 2012

Поскольку тестовые классы теперь размещены в src/main/java, вполне вероятно, что они компилируются во время фазы compile до target/classes.

Таким образом, несмотря на то, что верный огонь настроен на указание местоположения источника теста src/main/java, он все равно будет искать классы теста в target/test-classes, поскольку это местоположение по умолчанию для классов теста.

Вы можете попробовать указать testClassesDirectory соответствующим образом и посмотреть, работает ли он.

Кроме того, я думаю, что вы, возможно, неверно истолковали рекомендацию в документации по плагину maven jar,Я не верю, что они предлагают перенести тестовые источники на src/main/java.

...