Wie Um Sicherzustellen, eine @Test-Methode Immer Ausgeführt wird, Bevor Alle Anderen, Unabhängig von Klasse, Suite oder in der Gruppe?
Meiner Lektüre des TestNG docs deutet darauf hin, dass wenn ich eine test-Methode gekennzeichnet mit:
@BeforeSuite(alwaysRun = true)
@Test
public void MyTestMethod { ... }
dann MyTestMethod
laufen würde, bevor irgendein anderer test definiert, der überall, unabhängig von Klasse, suite oder in der Gruppe. Aber das scheint nicht der Fall zu sein.
Ist es ein Weg, um eine test-Methode führen Sie unbedingt vor alles andere? (Und dass, wenn es fehlschlägt, werden keine weiteren tests ausgeführt werden.)
Edit:
Die test-Klasse:
class Suite_Setup
extends BaseTestSuite
{
@BeforeSuite(alwaysRun = true)
def setup() {
System.out.println("Conducting test suite setup...")
//Verify that the internal API is configured properly and that the API host is available...
new Action(ApiHostname, new BasicCookieStore)
}
}
Edit:
Die Antwort:
Erstellen wir unsere eigenen TestNG.xml Dateien (automatisch) und die @BeforeSuite Methode war nicht in ihm enthalten. Sobald es aufgenommen wurde, @BeforeSuite
hatte die erwartete Wirkung.
Jedoch scheint es, dass die beiden @BeforeSuite
(und vermutlich andere @Before...
und @After...
Anmerkungen) kann gemischt werden mit @Test
und vielmehr als die Hemmung der Ausführung der annotierten Methode, Sie verursachen es zu laufen mehr als einmal!!!!
Auch, ich war nachlässig in nicht angibt, welche version von TestNG ich mit. Es ist 6.2.
InformationsquelleAutor Randall Schulz | 2012-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen mit Hilfe von Gruppen, die entweder auf Klassenebene oder auf methodenebene.
In meinem Fall, habe ich eine Reihe von smoke-tests, die ausgeführt werden müssen, bevor Sie alles, und wenn alle diese scheitern, keine anderen tests ausgeführt werden sollen.
Und alle anderen Klassen mit tests:
InformationsquelleAutor Bato
Ich denke die Antwort ist
Im folgenden Beispiel wird die testRemove ausgeführt, nachdem testInsert, testReadAll und testUpdate ausgeführt haben.
testReadAll ausgeführt, nachdem testInsert ausgeführt wurde.
testUpdate wird ausgeführt, nachdem testInsert ausgeführt wurde.
Beachten Sie, dass es keine Abhängigkeit zwischen testReadAll und testUpdate.
InformationsquelleAutor meziano karimoslov
@Test (alwaysRun=True)
macht den test immer laufen unabhängig von Methoden oder Gruppen abhängig ist, und auch er ist gescheitert
InformationsquelleAutor Shyamala
Entfernen
@Test
- eine Methode, die nicht sowohl eine Konfigurations-und eine test-Methode.Posten Sie Ihre Klasse.
OK... Was hat das zu sagen?
InformationsquelleAutor Cedric Beust
Nur versuchen zu ordnen, um target-test die niedrigste Priorität Wert.
Lesen Sie mehr über TestNG test Vorrang vor es.
Die Sie brauchen, um weitere tests je nach test-Methode, indem Sie eine der folgenden Optionen:
Wenn Sie eine Abhängigkeit Optionen, die Sie nicht angeben müssen Priorität für die erste Methode.
InformationsquelleAutor grumbler_chester