2016-10-04 3 views
2

Ein bisschen ein Neuling hier, aber ich versuche, das Maven Failsafe-Plugin TestNG Tests in meinem Java-Projekt mit dem Maven Task in TFS 2015 zu starten benutzte ursprünglich das Surefire-Plugin, wollte aber stattdessen Failsafe verwenden, und wenn der Code leicht geändert wird nach documentation for TestNG, wird das Failsafe-Plugin die TestNG-Testklasse anstelle der Testsuite ausführen (und fehlschlagen, weil ich Parameter verwende). Wenn Sie zu Surefire wechseln, werden die Tests als Testsuite ausgeführt und bestanden.Maven Failsafe nicht Test-Test-Suite, aber Surefire tut

Ich habe verschiedene Versionen von Failsafe ausprobiert und das hat nichts geändert. Was fehlt mir, dass Failsafe eine Testsuite erkennen muss?

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 
     </plugin> 

(mit todsicheren)

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.13</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 
     </plugin> 

(testng.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite"> 
    <parameter name="urlsource" value="https://httpbin.org/get"></parameter> 
    <test name="Test"> 
    <classes> 
     <class name="test.java.TestGenericRESTAPI"/> 
    </classes> 
    </test> <!-- Test --> 
</suite> <!-- Suite --> 
+0

today und failsafe sollen den gleichen Code teilen. Funktioniert todsicher-2.19.1? Fällt failsafe-2.13 aus? – juherr

+0

Surefire-2.13 funktioniert für mich, aber Failsafe 2.13 nicht. Es sieht aus wie todsichere-2.19.1 funktioniert gut, aber Failsafe-2.19.1 nicht. (Ich habe auch in skipAfterFailureCount hinzugefügt und todsichere Fehler fehlgeschlagen, während Failsafe erfolgreich war). Ich bin mir nicht sicher, ob das nur für mich ein Problem ist, wenn ich nicht ausfallsicher für verschiedene Versionen arbeiten kann. – Sachi

+0

Haben Sie festgestellt, dass fehlersicher standardmäßig der Build nicht fehlschlägt (Ziel 'Integrationstest'), aber Sie das Ziel' verify' ausführen müssen, wenn Sie den Build nicht ausführen wollen? – juherr

Antwort

1

Ihre Konfiguration lief Failsafe nicht überhaupt für mich, nur todsichere. Wie pro Failsafe docs, konfiguriert I Ziele:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.19.1</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>integration-test</goal> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <suiteXmlFiles> 
      <suiteXmlFile>testng.xml</suiteXmlFile> 
     </suiteXmlFiles> 
    </configuration> 
</plugin> 

Nun sind beide todsichere und Failsafe ausführen Tests auf mvn verify (und Failsafe Parameter richtig geht). Wenn Sie todsichere Tests überspringen möchten, können Sie dies tun:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.18.1</version> 
    <configuration> 
     <skipTests>true</skipTests> 
    </configuration> 
</plugin> 

Jetzt todsichere läuft noch auf mvn verify, aber nicht wirklich keine Tests durchgeführt. Ich weiß nicht, wie ich Surefire vollständig deaktivieren kann, daher sind alle Vorschläge oder Verbesserungen willkommen.

Beachten Sie, dass Ihre IDE immer noch direkt aufrufen kann (NetBeans tut für mich). Einige IDE-spezifische Einstellungen können hier helfen.

+0

Danke für die ausführliche Antwort. Sieht so aus, als würde es immer noch die Klasse anrufen. :( – Sachi

+0

@Sachi, hast du "mvn verify" direkt von der Befehlszeile aufgerufen? Weil das Problem in deiner TFS-Konfiguration sein kann (so wie NetBeans es macht, wie es in meinem Fall gefällt). –

+0

Hmm, interessant. Ich werde es versuchen that, thanks. – Sachi

Verwandte Themen