2015-08-21 6 views
7

Ich benutze Maven 3.2.3, JUnit 4.12 und SureFire 2.18.1 innerhalb Jenkins. Ich habe einen Multi-Modul Maven Job mit folgenden Maven Optionen einrichten:Jenkins Maven Build Berichte Erfolg trotz fehlgeschlagenen Unit-Test

clean install -U -e -P qa -Dci -DskipITs 

Allerdings, wenn ich meine Maven Build laufen, obwohl einer meiner JUnit Tests fehlschlagen, die Maven-Modul selbst meldet „SUCCESS“ (Ausgabe after) ...

Executing Maven: -B -f /var/lib/jenkins/workspace/subco/subco/pom.xml clean install -U -e -P qa -Dci -DskipITs 


… 

——————————————————————————— 
T E S T S 
------------------------------------------------------- 
Running org.mainco.subco.user.domain.UserTest 
Tests run: 24, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.049 sec <<< FAILURE! - in org.mainco.subco.user.domain.UserTest 
testHasRoleNullRoles(org.mainco.subco.user.domain.UserTest) Time elapsed: 0.006 sec <<< FAILURE! 
java.lang.AssertionError: Failed to indicate we found right role for user. 
    at org.junit.Assert.fail(Assert.java:88) 
    at org.junit.Assert.assertTrue(Assert.java:41) 
    at 

… 

[INFO] Tests are skipped. 
[JENKINS] Recording test results 
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ othersubmodule --- 
[INFO] Installing /var/lib/jenkins/workspace/subco/subco/othersubmodule/target/othersubmodule.war to /var/lib/jenkins/.m2/repository/org/mainco/subco/othersubmodule/83.0.0-SNAPSHOT/othersubmodule-83.0.0-SNAPSHOT.war 
[INFO] Installing /var/lib/jenkins/workspace/subco/subco/othersubmodule/pom.xml to /var/lib/jenkins/.m2/repository/org/mainco/subco/othersubmodule/83.0.0-SNAPSHOT/othersubmodule-83.0.0-SNAPSHOT.pom 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] subco ....................................... SUCCESS [4.849s] 
[INFO] database .......................................... SUCCESS [18.340s] 
[INFO] session ........................................... SUCCESS [6.601s] 
[INFO] main .............................................. SUCCESS [8:00.887s] 
[INFO] mainclient ........................................ SUCCESS [4:01.490s] 
[INFO] orders ............................................ SUCCESS [50.831s] 
[INFO] SBD myproject Webapp .................................. SUCCESS [1:45.484s] 
[INFO] subco Admin Module .......................... SUCCESS [1:01.318s] 
[INFO] Other Submodule ................................ SUCCESS [6.162s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 16:20.351s 
[INFO] Finished at: Thu Aug 20 21:17:57 UTC 2015 
[INFO] Final Memory: 76M/748M 
[INFO] ------------------------------------------------------------------------ 
Waiting for Jenkins to finish collecting data 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/orgsclient/pom.xml to org.mainco.subco/orgsclient/83.0.0-SNAPSHOT/orgsclient-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/orgsclient/target/orgsclient.war to org.mainco.subco/orgsclient/83.0.0-SNAPSHOT/orgsclient-83.0.0-SNAPSHOT.war 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/pom.xml to org.mainco.subco/subco/83.0.0-SNAPSHOT/subco-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/myproject/pom.xml to org.mainco.subco/myproject/83.0.0-SNAPSHOT/myproject-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/myproject/target/myproject.war to org.mainco.subco/myproject/83.0.0-SNAPSHOT/myproject-83.0.0-SNAPSHOT.war 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/database/pom.xml to org.mainco.subco/database/83.0.0-SNAPSHOT/database-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/database/target/database-83.0.0-SNAPSHOT.jar to org.mainco.subco/database/83.0.0-SNAPSHOT/database-83.0.0-SNAPSHOT.jar 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/othersubmodule/pom.xml to org.mainco.subco/othersubmodule/83.0.0-SNAPSHOT/othersubmodule-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/othersubmodule/target/othersubmodule.war to org.mainco.subco/othersubmodule/83.0.0-SNAPSHOT/othersubmodule-83.0.0-SNAPSHOT.war 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/sbadmin/pom.xml to org.mainco.subco/sbadmin/83.0.0-SNAPSHOT/sbadmin-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/sbadmin/target/sbadmin.war to org.mainco.subco/sbadmin/83.0.0-SNAPSHOT/sbadmin-83.0.0-SNAPSHOT.war 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/main/pom.xml to org.mainco.subco/main/83.0.0-SNAPSHOT/main-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/main/target/main.jar to org.mainco.subco/main/83.0.0-SNAPSHOT/main-83.0.0-SNAPSHOT.jar 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/main/target/main-tests.jar to org.mainco.subco/main/83.0.0-SNAPSHOT/main-83.0.0-SNAPSHOT-tests.jar 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/orders/pom.xml to org.mainco.subco/orders/83.0.0-SNAPSHOT/orders-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/orders/target/orders.jar to org.mainco.subco/orders/83.0.0-SNAPSHOT/orders-83.0.0-SNAPSHOT.jar 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/session/pom.xml to org.mainco.subco/session/83.0.0-SNAPSHOT/session-83.0.0-SNAPSHOT.pom 
[JENKINS] Archiving /var/lib/jenkins/workspace/subco/subco/session/target/session.jar to org.mainco.subco/session/83.0.0-SNAPSHOT/session-83.0.0-SNAPSHOT.jar 
Sending e-mails to: [email protected] [email protected] [email protected] [email protected] [email protected] 

Kanal gestoppt Senden von E-Mails an: [email protected] Achtung: Sie haben keine Plugins Steuer Bereitstellung des Zugangs für baut, so zurück zu legacy Verhalten der Genehmigung einer nachgeschalteten baut fallenden ausgelöst werden Abschluss: INSTABIL

Wie kann ich das Maven-Modul dazu bringen, FAILURE zu melden, wenn einer der Komponententests fehlschlägt? Ich realisiere die gesamten Build-Berichte als UNSTABLE in Jenkins, aber aus Gründen der Lesbarkeit würde ich es vorziehen, wenn SUCCESS nur anzeigen würde, wenn alles vorbei ist.

Edit: Hier ist die todsichere Plugin-Konfiguration

    <plugin> 
          <groupId>org.apache.maven.plugins</groupId> 
          <artifactId>maven-surefire-plugin</artifactId> 
          <version>2.18.1</version> 
          <configuration> 
            <reuseForks>true</reuseForks> 
            <argLine>-Xmx2048m -XX:MaxPermSize=512M -noverify -XX:-UseSplitVerifier ${argLine}</argLine> 
            <skipTests>${skipAllTests}</skipTests> 
          </configuration> 
        </plugin> 
+0

So erhalten Sie Instable und Sie wollen Fehler, ist das richtig? – Zloj

+1

Ich denke, er will, dass Maven den Build versagt, anstatt Erfolg zu zeigen. Haben Sie aus Neugierde versucht, die Eigenschaft test failure ignore (http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#testFailureIgnore) manuell auf false zu setzen? –

+0

Hi, ich möchte, was löffelbart896 beschrieben hat - der Maven Build scheitert, anstatt Erfolg zu zeigen. Ich habe die von Ihnen angegebene Eigenschaft nicht explizit festgelegt. Einschließlich meiner todsicheren Konfiguration für den Fall, dass dies Klarheit schafft. – Dave

Antwort

5

Diese Antwort ist im Grunde, was @ spoonybard896 in einem Kommentar vorgeschlagen.

Fügen Sie -Dmaven.test.failure.ignore=false zu MAVEN_OPTS hinzu. Das kann im Abschnitt Build -> Advanced Ihres Jenkins-Jobs hinzugefügt werden.

Normalerweise sollte dies der Standardwert sein, aber mit Jenkins und Maven-Jobs, it isn't so. Für diese ist diese Eigenschaft tatsächlich auf true festgelegt, es sei denn, Sie legen es selbst fest.

(Disclaimer: die genauen Jenkins Schritte von this answer nachgeschlagen).