2009-11-04 6 views
17

Ich habe eine TestNG-Suite mit vielen Methoden. Ich führe diese Suite mit einem Wrapper aus, der auf dem TestNG-Runner basiert. Alle Tests in der Suite schlagen mit Ausnahme eines fehl. Was sollte ich in testng.xml schreiben, um nur diesen einen fehlgeschlagenen Test auszuführen?Wie führe ich einen Test aus einer großen TestNG-Suite mit testng.xml aus?

Offensichtliche Lösung ist, allen Methoden eindeutige Gruppennamen zuzuweisen und dann den Namen in testng.xml anzugeben. Dies kann im Fall von 2-3 Methoden funktionieren, aber es wird schwieriger, wenn die Anzahl der Tests wächst.

Antwort

1

Es gibt mehrere Methoden, dies zu tun.

Verwenden Sie Eclipse für die Entwicklung? Es gibt ein Eclipse-Plugin für TestNG und ich denke, es wäre der einfachste Weg für Sie, spezifische Tests durchzuführen. Mit dem Plugin können Sie eine Suite, Gruppe, Klasse oder Methode des verfügbaren Tests ausführen.

Wenn nicht, glaube ich, dass Sie eine ant-Aufgabe zum Starten des Tests (http://testng.org/doc/ant.html) einrichten und Attribute wie "classfilesetref" verwenden können, um eine Liste der Tests zur Verfügung zu stellen. Sie können den Test in einer separaten Datei angeben, sodass Sie die Datei build.xml nicht jedes Mal aktualisieren müssen, wenn Sie den Test ausführen.

Für die Installation von testng Plugin.Just Folgen Sie den Schritten: 1-Gehen Sie zu "Hilfe" Menü in Eclipse. 2-Select "Neue Software installieren". " 3-Add" http://beust.com/eclipse.“

Es im Fall des Fehlers arbeitet von Ihnen angegeben Ich glaube, Sie das Plugin nicht in der Eclippse IDE

+0

Die erste Option ist nicht verfügbar - ich verwende einen Wrapper, der auf dem TestNG-Runner aufbaut, um Tests zu starten.Eclipse fängt keine Testergebnisse ab, die von meinem Wrapper ausgeführt werden. Danke für die zweite Option - ich werde es versuchen. –

4

installiert Nach . jeder Lauf, schafft TestNG eine eingereichte genannt testng-failed.xml, die nur die Tests enthält, die fehlgeschlagen einfach aufrufen TestNG wieder auf diese Datei:

java org.testng.TestNG testng.xml java org.testng.TestNG testng -failed.xml

(ersetzen org .testng.TestNG mit Ihrem eigenen Läufer, da Sie scheinen, ein angepasstes zu verwenden).

+0

Kann nicht glauben, Beust selbst antwortet Antwort !! –

1

Sie könnten auch Ihre eigene ITestListener erstellen (da Sie sowieso Ihren eigenen Wrapper haben), der die Fehler verfolgt und dann daraus eine eigene Fehler-Suite-Datei generiert, die nur den fehlgeschlagenen Test enthält. TestNG's Listener/Interceptor Hooks sind ziemlich gut. Bei der Arbeit haben wir sie TestNG mit mehrfacher Hinsicht erweitert:

  • Capture/Wiedergabe der erzeugten Datensätze
  • Ergebnis Protokollierung in eine Datenbank
  • maßgeschneiderten Testausgang (Scheitholz)
  • Meta-Daten wie IDs Beschreibungen von einem @DataProvider
  • Laufzeitprüfungen von umgebungsabhängigen Beschränkungen für Testfälle für Datensätze, sofern
6

Versuchen Sie folgendes:

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <exclude name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
+1

Oder , um nur den einen auszuführen –

15

Statt exclude, können Sie include verwenden. Es wird genau das, was du willst. Nur dieser Test wird ausgeführt.

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <include name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
Verwandte Themen