2013-05-23 4 views
10

Ich verwende Maven mit Multi-Modulen. Es gibt 3 Projekte.Maven führt keinen Komponententest durch

foo(the parent project) 
foo-core 
foo-bar 

ich alle Abhängigkeiten und Plugins in foo ‚s pom konfigurieren:

<modules> 
    <module>../foo-core</module> 
    <module>../foo-bar</module> 
</modules> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      ... 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.14.1</version> 
       <dependencies> 
        <dependency> 
        <groupId>org.apache.maven.surefire</groupId> 
        <artifactId>surefire-junit47</artifactId> 
        <version>2.14.1</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

Es gibt mehrere Basisklassen und util-Klassen für Unit-Test in foo-core, so dass ich fügen Sie den maven-jar-plugin in foo-core Projekt machen es zur Verfügung foo-bar:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.3.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>test-jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Wenn ichausführenZiel, ich habe das Ergebnis wie folgt:

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false 

Results : 

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

Ich habe Tests in meinen Projekten. Aber warum läuft keiner von ihnen?

+0

Sie Namen von Testdateien hinzufügen, die auf todsichere Seite aufgelisteten entsprechen? http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html –

+0

@Grzegorz Ja. Alle Testdateien heißen *** Tests.java. –

+0

Wenn ja, sehen Sie bitte die Antwort. –

Antwort

15

Rename Testdateien **Tests.java-**Test.java oder die folgende Konfiguration pom.xml

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.14.1</version> 
    <configuration> 
    <includes> 
     <include>**/*Tests.java</include> 
    </includes> 
    </configuration> 
</plugin> 
+0

Verdammt! Wie könnte ich so blind sein! –

+1

@Kirin Yao Mach dir keine Sorgen! Ich kannte die Antwort nur, weil ich zu Beginn jedes Projekts den gleichen Fehler gemacht habe. :-) –

+0

Das funktioniert nicht für mich. Ich habe eine Klasse "OptimizerTest.java" und es funktioniert perfekt ohne jegliche Einbeziehung, aber die andere Klasse "OptimizerTest2.java" funktioniert nicht. Wenn ich mvn: test-Dtest = OptimizerTest ich BUILD SUCCESS mit 3 TESTS PASSED, wenn ich den gleichen Befehl ausführen, aber für OptimizerTest2 bekomme ich BUILD FAILURE, test run: 0 wo OptimizerTest2 ist nur eine Kopie der ersten ° _ ° – Aerox