2009-11-04 10 views
17

Mam pakiet TestNG z dużą ilością metod. Wykonuję ten pakiet przy użyciu opakowania zbudowanego na górze RunNera TestNG. Wszystkie testy w pakiecie kończą się niepowodzeniem, z wyjątkiem jednego. Co powinienem napisać w pliku testng.xml, aby wykonać tylko jeden nieudany test?Jak wykonać jeden test z dużego zestawu TestNG przy użyciu pliku testng.xml?

Oczywistym rozwiązaniem jest przypisanie unikalnych nazw grup do wszystkich metod, a następnie określenie nazwy w pliku testng.xml. Może to działać w przypadku 2-3 metod, ale staje się trudniejsze, gdy rośnie liczba testów.

Odpowiedz

1

Istnieje kilka metod, aby to zrobić.

Czy używasz platformy Eclipse do programowania? Istnieje wtyczka Eclipse dla TestNG i myślę, że byłby to zdecydowanie najłatwiejszy sposób na uruchomienie określonych testów. Wtyczka umożliwia uruchomienie pakietu, grupy, klasy lub metody dostępnego testu.

Jeśli nie, to uważam, że można ustawić zadanie ant do uruchomienia testu (http://testng.org/doc/ant.html) i użyć atrybutów takich jak "classfilesetref", aby podać listę testów do uruchomienia. Możesz określić test w osobnym pliku, więc nie musisz aktualizować pliku build.xml za każdym razem, gdy uruchamiasz test.

Do instalacji wtyczki testng.Just Postępuj zgodnie z instrukcjami: 1-Przejdź do "Pomoc" Menu w Eclipse. 2 Wybierz "Install New Software" " 3-Add" http://beust.com/eclipse.”

To działa w przypadku błędu określonym Chyba nie masz wtyczki zainstalowanej w Eclippse IDE

+0

Pierwsza opcja jest niedostępna - Używam otoki, zbudowanej na bazie testNG, aby uruchomić testy.Eclipse nie przechwytuje wyników testów wykonanych przez moje opakowanie. Dzięki za drugą opcję - spróbuję. –

4

After . każdy bieg, TestNG tworzy złożony nazwie TestNG-failed.xml że zawiera tylko testy, które nieudane Wystarczy powołać TestNG ponownie na tym pliku:

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

(wymienić org .testng.TestNG ze swoim własnym biegaczem, ponieważ wydaje się, że używasz dostosowanego).

+0

Nie mogę uwierzyć, sam odpowiedz odpowiedź! –

1

Można również utworzyć własny ITestListener (ponieważ w każdym razie masz własne opakowanie), który śledzi niepowodzenia, a następnie generuje własny plik błędów, który zawiera tylko test zakończony niepowodzeniem. Haki testera/przechwytywacza TestNG są całkiem dobre. W pracy mamy przedłużony TestNG przy użyciu im kilka sposobów:

  • przechwytywania/odtwarzanie danych generowanych Zestawy
  • rejestrowanie wyników do bazy danych
  • dostosowane wyjście testowe (kłody)
  • meta danych, takich jak identyfikatory , opisy, dla zbiorów danych świadczone przez @DataProvider
  • kontrole uruchomieniowe ograniczeń środowiskowych na utrzymaniu przypadków testowych
6

Spróbuj tego:

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

Lub , aby wykonać tylko jeden –

15

Zamiast exclude można użyć include. To będzie dokładnie to, czego chcesz. Tylko ten test zostanie wykonany.

<classes> 
    <class name="test.IndividualMethodsTest"> 
     <methods> 
     <include name="testMethod" /> 
     </methods> 
    </class> 
    </classes> 
Powiązane problemy