Surefire ne lance pas de test dans src / main / java

J'avais besoin de déplacer src / test / java vers src / main / java selon cette recommandation de Maven-jar-plugin documentation => http://maven.apache.org/plugins/maven-jar-plugin/usage.html

Je l'ai fait parce que j'ai utilisé des classes tests (helper) dans d'autres projets dans la portée du test.

Donc, je crée mon-project-test, déplacé dans les classes de test, et configuré surefire pour spécifier le répertoire des classes de test = >

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <testSourceDirectory>${basedir}srcmainjava</testSourceDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

Mais quand j'ai lancé mvn test, 0 tests est exécuté =>

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

Le problème est le même que celui-ci = >Maven ne trouve pas de tests JUnit à exécuter mais la solution (configurer le plugin surefire maven) ne fonctionne pas pour moi.

22
demandé sur Community 2012-01-24 16:36:49

2 réponses

La bonne configuration pour le plugin Maven surefire est = >

<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
29
répondu Antoine 2012-01-25 08:56:14

Comme les classes de test ont maintenant été placées dans src/main/java, Il est probable qu'elles soient compilées pendant la phase compile à target/classes.

Donc, bien que surefire soit configuré pour indiquer que l'emplacement de la source de test est src/main/java, il recherchera toujours les classes de test dans target/test-classes, car c'est l'emplacement par défaut pour les classes de test.

Vous pouvez essayer de spécifier le paramètre testclassesdirectory de manière appropriée et voir si cela fonctionne.

Aussi, je pense que vous pouvez ont mal interprété la recommandation dans la documentation du plugin Maven jar. Je ne crois pas qu'ils suggèrent de déplacer les sources de test vers src/main/java.

1
répondu Raghuram 2012-01-25 09:44:48