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.

kann Sie erklären Sie bitte, wie haben Sie gehören BeforeSuite annotation Methode in TestNG.xml ? Ich habe die Anforderung, mehrere Klassen parallel und müssen Sie zum ausführen von setup-Methode mit der annotation BeforeSteuie

InformationsquelleAutor Randall Schulz | 2012-03-15

Schreibe einen Kommentar