Как запустить индивидуальный тест в Maven? - PullRequest
2 голосов
/ 17 февраля 2012

Мы используем Maven 3.0.3 и используем JUnit 4.8.1 ...

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>

У нас есть этот тестовый файл ...

./src/test/java/com/myco/clearing/common/xml/TextNodeTest.java

Как я могузапустить этот индивидуальный тест?Когда я пытаюсь

mvn -Dtest=TextNodeTest test

, я получаю сообщение об ошибке, в котором говорится, что тесты не проводились.Я получаю ту же ошибку, если в тесте указываю полное имя пакета....

mvn clean -Dtest=com.myco.clearing.common.xml.TextNodeTest test

, который выдает сообщение об ошибке ...

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project myco-productplus-web: No tests were executed!
(Set -DfailIfNoTests=false to ignore this 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/MojoFailureException

Вот верная конфигурация, которую я использую

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12</version>
            <configuration>
                <skip>false</skip>
                <additionalClasspathElements>
                    <additionalClasspathElement>${project.build.sourceDirectory}</additionalClasspathElement>
                    <additionalClasspathElement>${project.build.testSourceDirectory}</additionalClasspathElement>
                </additionalClasspathElements>
                <useManifestOnlyJar>false</useManifestOnlyJar>
                <forkMode>always</forkMode>
                <systemProperties>
                    <property>
                        <name>gwt.args</name>
                        <value>-out "${webappDirectory}"</value>
                    </property>
                </systemProperties>
                <systemPropertyVariables>
                    <tomcat.port>${tomcat.servlet.port}</tomcat.port>
                    <project.artifactId>${project.artifactId}</project.artifactId>
                </systemPropertyVariables>
            </configuration>
        </plugin>

Ответы [ 3 ]

5 голосов
/ 24 февраля 2012

Чтобы запустить один тест (метод) безошибочно, выполните:

mvn test -Dtest=uk.co.farwell.AppTest#testSlow

Запишите # вместо пробела между именем класса и именем метода.

Однако, как говорит @Andrew, в 2.12 есть ошибка ( SUREFIRE-827: Surefire 2.12 не может запустить один тест, регрессия от 2.11 ), но работает в 2.11.

Вышеуказанная ошибка все еще открыта (по состоянию на 24.02.2012), но на самом деле у меня работает с использованием 2.13-SNAPSHOT.

РЕДАКТИРОВАТЬ: теперь это помечено как исправлено в 2.12.1.

2 голосов
/ 18 февраля 2012

Похоже, что это ошибка в версии 2.12 - SUREFIRE-827 .Попробуйте понизить до 2.11.

0 голосов
/ 22 августа 2012

Как говорят другие, это ошибка в Surefire и исправлена ​​с версии 2.11.1 .

...