TestNG BeforeMethod mit Gruppen

8

Ich frage mich, ob @BeforeMethod mit Gruppen verwendet wird. In Ссылка heißt es:

  

alwaysRun: Wenn diese Option auf "true" gesetzt ist, wird diese Konfigurationsmethode unabhängig von den Gruppen ausgeführt, zu denen sie gehört.

Ich habe also folgende Klasse:

%Vor%

Welche Ausgaben:

%Vor%

Neben der Tatsache, dass ich denke, dass awaysRun standardmäßig falsch ist, kann mir jemand erklären, warum beide Methoden vor jedem Test aufgerufen werden, abgesehen von den Gruppen? Etwas wie @Test (skipBeforeMethod="setUpG1") würde auch funktionieren.

Ich verwende IntelliJ IDEA CE 10.5.2. Ich habe es auch mit Gradle 1.0-meilenstein-3 ausgeführt.

    
rweng 29.10.2011, 15:47
quelle

2 Antworten

2

Wie rufen Sie TestNG auf? Laufen Sie irgendwelche Gruppen?

Wenn Sie keine ausführen, werden beide @BeforeMethods ausgeführt. Wenn Sie "g1" ausführen, wird nur setupG1 ausgeführt, etc ...

    
Cedric Beust 29.10.2011 16:43
quelle
0

Ich würde empfehlen, nicht alwaysRun = true zu verwenden, sondern eine spezielle Gruppe für config-Methoden zu erstellen (wir verwenden "config") und alle vor * () und after * () -Methoden mit groups="config".

Alle Testmethoden können mit der von Ihnen gewünschten Gruppe versehen werden, z. "foo" und "bar".

Dann, in Ihrem Lauf, tun Sie:

%Vor%

oder

%Vor%

Wenn Sie dann eine andere Gruppe hinzufügen, "newGroup", müssen Sie nicht alle Konfigurationsmethoden durchgehen und ihnen "newGroup" hinzufügen. Führen Sie einfach Folgendes aus:

%Vor%

Dies erleichtert die Verwaltung von Gruppen!

Wenn Sie (aus Versehen?) etwas wie:

ausgeführt haben %Vor%

Es würden keine Tests (und keine config-Methoden) ausgeführt, da Sie eigentlich keine Tests für "nonExistingGroup" kommentieren und die config-Methoden nur dann laufen, wenn es "passende Tests" gibt, die diese config-Methoden benötigen.

    
mac 19.06.2015 18:40
quelle

Tags und Links