2015-12-11 1 views
0

Je n'arrive pas à comprendre pourquoi maven-surefire-plugin n'exécute pas le test jUnit4. Mon pom est (ne peut pas ajouter ici parce que "il semble d'après est le code la plupart du temps"): http://pastebin.com/Jj3iJZpYPourquoi maven-surefire-plugin ignore les tests avec un message de journal "car il a déjà été exécuté pour cette configuration"?

Lorsque j'exécute mvn clean test fenêtre cmd montre:

C:\Users\maya\git\services>mvn clean test 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building services 1.0.18 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ services --- 
[INFO] Deleting C:\Users\maya\git\services\target 
[INFO] 
[INFO] --- maven-mule-plugin:1.9:attach-test-resources (default-attach-test-resources) @ services --- 
[INFO] attaching test resource C:\Users\maya\git\services\src\main\app 
[INFO] 
[INFO] --- build-helper-maven-plugin:1.7:add-resource (add-resource) @ services --- 
[INFO] 
[INFO] --- maven-resources-plugin:2.7:resources (default-resources) @ services --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 4 resources 
[INFO] Copying 3 resources 
[INFO] Copying 0 resource 
[INFO] 
[INFO] --- maven-mule-plugin:1.9:filter-resources (default-filter-resources) @ services --- 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ services --- 
[INFO] Compiling 60 source files to C:\Users\maya\git\services\target\classes 
[INFO] 
[INFO] --- maven-resources-plugin:2.7:testResources (default-testResources) @ services --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 0 resource 
[INFO] Copying 3 resources 
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ services --- 
[INFO] Compiling 1 source file to C:\Users\maya\git\services\target\test-classes 
[INFO] 
[INFO] --- maven-surefire-plugin:2.19:test (default-test) @ services --- 
[INFO] 
[INFO] --- maven-surefire-plugin:2.19:test (default) @ services --- 
[INFO] Skipping execution of surefire because it has already been run for this configuration 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 8.554 s 
[INFO] Finished at: 2015-12-11T15:48:05+03:00 
[INFO] Final Memory: 48M/312M 
[INFO] ------------------------------------------------------------------------ 

classe Test est:

package com.comp.utils.UtilsTest; 

    import static org.junit.Assert.assertTrue; 
    import org.apache.log4j.Logger; 
    import org.junit.Test; 



    public class UtilsTest { 
     private static final Logger LOG = Logger.getLogger(UtilsTest.class.getName()); 


     @Test 
     public void testHasPersonSameProd() { 


      boolean hasSameProduct = false; 

      assertTrue("Should be True", hasSameProduct); 
     } 
    } 

Pourquoi maven-surefire-plugin: 2.19 s'exécute deux fois et ne veut pas exécuter ma classe de test? Comment faire un test dans mon cas? Je vous remercie.

Répondre

2

Compte tenu de la pom-vous lié (qui devrait être inclus dans la question en fait, que le lien peut être rompu à l'avenir):

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19</version> 
    <executions> 
      <execution> 
        <goals> 
          <goal>test</goal> 
        </goals> 
      </execution> 
    </executions> 


    <dependencies> 
      <dependency> 
        <groupId>org.apache.maven.surefire</groupId> 
        <artifactId>surefire-junit47</artifactId> 
        <version>2.19</version> 
      </dependency> 
    </dependencies> 

    <configuration> 
      <includes> 
        <include>UtilTest.java</include> 
      </includes> 
    </configuration> 
</plugin> 
  • Le plugin Maven Surefire fonctionne deux fois parce que vous avez configuré un montant supplémentaire l'exécution du plugin, sans fournir un élément id et en tant que tel par défaut, il est appelé default (maven-surefire-plugin:2.19:test (default)). Cette exécution s'exécute après la configuration Maven prête à l'emploi pour Surefire(). Donc, en conséquence, vous avez deux exécutions (default et default-test). En supprimant la section executions de la configuration du plug-in Surefire, vous n'avez qu'une seule exécution (la default-test).
  • Vous avez également une faute de frappe dans la configuration Surefire, les points de configuration <include>UtilTest.java</include> à la classe UtilTest.java, tandis que dans votre question, il est nommé UtilsTest (notez les 'supplémentaires').
  • Si la classe de test est sous le dossier src/test/java, vous n'avez pas besoin de configurer son inclusion, car elle suit déjà la convention par défaut de Surefire, "**/*Test.java".
  • Le message que vous rencontrez (Skipping execution of surefire because it has already been run for this configuration) est parce que votre élément configuration pour le plugin Surefire est en dehors de tout élément executions, ce qui signifie est appliqué à toutes les exécutions plugin, même la valeur par défaut un (default-test).

Donc, vous pouvez probablement supprimer toute la section plugin Surefire de votre pom et le problème devrait être résolu.

+0

Merci. L'erreur était dans ' UtilTest.java'. Devrait être UtilTest ** s **. Java May12