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.
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 ...
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: oder 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: Dies erleichtert die Verwaltung von Gruppen! Wenn Sie (aus Versehen?) etwas wie: 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.