2010-05-23 5 views
3

J'ai un simple projet Maven2 avec des tests écrits pour TestNG. Quand je dis mvn test Maven2 compile mon test, mais ne les exécute pas. J'ai déjà vérifié cette page: http://maven.apache.org/general.html#test-property-name. Ce n'est pas mon cas.Maven2 compile mes tests, mais ne les exécute pas

Quelqu'un peut-il aider?

Ma structure de répertoire:

pom.xml 
src 
    main 
    java 
     com ... 
    test 
    java 
     com ... 
target 
    classes <— .class files go there 
    test-classes <— .class files with tests go there 

C'est ce que je vois si je lance mvn -X test (fin du journal):

... 
[INFO] Surefire report directory: <mydir>/target/surefire-reports 
Forking command line: /bin/sh -c cd <mydir> && /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java -jar /var/folders/+j/+jAx0g2xGA8-Ns9lWNOWgk+++TM/-Tmp-/surefirebooter7645642850235508331.jar /var/folders/+j/+jAx0g2xGA8-Ns9lWNOWgk+++TM/-Tmp-/surefire4544000548243268568tmp /var/folders/+j/+jAx0g2xGA8-Ns9lWNOWgk+++TM/-Tmp-/surefire7481499683857473873tmp 

------------------------------------------------------- 
    T E S T S 
------------------------------------------------------- 
Running TestSuite 
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.191 sec 

J'ai deux tests dans le projet (MainTest.java et FileSetTest.java) .

Mon pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.SKIP</groupId> 
    <artifactId>SKIP</artifactId> 
    <name>SKIP</name> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
    <url>http://www.SKIP.com</url> 

    <dependencies> 
     <dependency> 
      <groupId>org.antlr</groupId> 
      <artifactId>antlr-runtime</artifactId> 
      <version>3.2</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>5.8</version> 
      <scope>test</scope> 
      <classifier>jdk15</classifier> 
     </dependency> 
    </dependencies> 
    <build> 
     <defaultGoal>install</defaultGoal> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.5</version> 
      </plugin>    
      <plugin> 
       <groupId>org.antlr</groupId> 
       <artifactId>antlr3-maven-plugin</artifactId> 
       <version>3.2</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>antlr</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>jsr14</target> 
        <sourceDirectory>src</sourceDirectory> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
        <archive> 
         <manifest> 
          <mainClass>com.SKIP.Main</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>attached</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

Vos cours commencent-ils ou se terminent par * Test *? – whiskeysierra

Répondre

7

Le « problème » est en quelque sorte lié au fait que vous compilez vos tests en utilisant le mode cible jsr14 qui provoque le compilateur d'émettre JDK bytecode 1.4 compatible donc je pense que Les annotations sont supprimées et TestNG ne détecte rien à exécuter.

Ma suggestion serait de configurer le maven-compilateur-plugin pour utiliser différents niveaux de conformité lors de la compilation code de principal et d'essai comme indiqué ci-dessous:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
    <source>1.6</source> 
    <target>jsr14</target> 
    </configuration> 
    <executions> 
    <execution> 
     <id>test-compile</id> 
     <phase>process-test-sources</phase> 
     <goals> 
     <goal>testCompile</goal> 
     </goals> 
     <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

J'ai fait un test rapide, il semble fonctionner .

+0

Un grand merci, c'est exactement la solution que j'avais après :) – yegor256

+0

@Vincenzo De rien. Et merci pour l'upvote;) –

Questions connexes