2014-10-10 6 views
5

ich die nächste pom.xmlWarum Failsafe-Plugin sowohl die Integration-Test erfordert und Ziele überprüfen

<project> 
    ... 
    <plugin> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>integration-test</id> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 
        <configuration> 
         <argLine>${failsafeArgLine}</argLine> 
         <includes> 
          <include>**/dmg/*IT.java</include> 
         </includes> 
         <skipTests>${skipTests}</skipTests> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    ... 
</project> 

Das Problem ist, dass, wenn ich nehme off überprüfen Ziel dann die Build ist jedes Mal erfolgreich, auch wenn Testfehler aufgetreten sind.

Und wenn ich sowohl die Integration-Test nicht

Warum Failsafe-Plugin erfordert und überprüfen Ziele Taking off bin Integration-Test Ziel der Integrationstests einfach laufen?

+1

Was benutzt du so eine extreme alte Version von maven-failsafe-plugin. Die aktuelle Version ist 2.17 ... Außerdem sind die Includes nicht notwendig, da dies die Standardwerte sind. – khmarbaise

+0

Dies ist notwendig, weil ich nur IT laufen lassen muss, die in ** dmg ** Paket ist und danke ... Ich wusste nicht über die Version)) – gokareless

Antwort

5

In Maven Failsafe-Plugin Referenz Sie einfache Antwort finden können, warum bauen immer erfolgreich ist

failsafe:integration-test runs the integration tests of an application. 
    failsafe:verify verifies that the integration tests of an application passed. 

Ohne Ziel Testergebnisse überprüfen sind nicht geprüft (aber sie ausgeführt werden), so Das Failsafe-Plugin benötigt ein Testziel für die Integration, um Tests auszuführen und um zu verifizieren, dass die Ergebnisse überprüft werden.

+0

aber nicht ** verify ** Phase beinhaltet die * * Integrationstestphase ** Warum sollte ich beides schreiben? Die Spezifikation besagt, dass die Verifizierung nach dem Integrationstest erfolgt ... – gokareless

+1

Das Plugin hat keinen eigenen 'Lebenszyklus'. Es ist so konfiguriert, dass es "Ziele" ausführt. Diese "Ziele" sind an "Phasen" gebunden. Die Phasen haben ihren Platz im Standard-Lebenszyklus. Auf diese Weise weiß Maven, welches "Goal" zuerst geht. Warum brauchen zwei "Ziele"? Denn zwei sind besser als einer. Ich muss möglicherweise Tests ausführen und dann eine Routine ausführen, um Ergebnisse zu veröffentlichen, selbst wenn Tests fehlgeschlagen sind. Ich definiere die 'verify' Ausführung nicht und es ist bereits erledigt. –