Frage

Ich verwende Selenium RC mit Java mit Eclipse- und TestNG-Framework.Ich habe das folgende Code-Snippet:

assertTrue(selenium.isTextPresent("Please enter Email ID"));
assertTrue(selenium.isTextPresent("Please enter Password"));

Die erste Bestätigung ist fehlgeschlagen und die Ausführung wurde gestoppt.Aber ich möchte den weiteren Codeausschnitt fortsetzen.

War es hilfreich?

Lösung

Selenium IDE verwendet verify, um eine weiche Zusicherung durchzuführen. Dies bedeutet, dass der Test auch dann fortgesetzt wird, wenn die Prüfung fehlschlägt, und entweder die Fehler am Ende des Tests oder im Falle einer harten Zusicherung meldet.

Mit TestNG ist es möglich, diese weichen Zusicherungen mithilfe benutzerdefinierter Test-Listener zu erstellen.Ich habe in meinem Blog dokumentiert, wie das geht: http://davehunt.co.uk/2009/10/08/using-soft-assertions-in-testng.html

Grundsätzlich müssen Sie Ihre eigenen verify*-Methoden erstellen. In diesen können Sie Assertionsfehler abfangen und einer Karte hinzufügen.In einem benutzerdefinierten afterInvocation-Listener können Sie den Test auf "Fehlgeschlagen" setzen, wenn die Karte nicht leer ist.

Andere Tipps

Ich empfehle Ihnen, weiche Zusicherungen zu verwenden, die in TestNg nativ bereitgestellt werden.

package automation.tests;

import org.testng.asserts.Assertion;
import org.testng.asserts.SoftAssert;

public class MyTest {
  private Assertion hardAssert = new Assertion();
  private SoftAssert softAssert = new SoftAssert();
}

@Test
public void testForSoftAssertionFailure() {
  softAssert.assertTrue(false);
  softAssert.assertEquals(1, 2);
  softAssert.assertAll();
}

Quelle: http://rameshbaskar.wordpress.com/2013/09/11 / soft-assertions-using-testng /

Ändern Sie Ihre Behauptungen in Überprüfungen:

verifyTrue(selenium.isTextPresent("Please enter Email ID"));
verifyTrue(selenium.isTextPresent("Please enter Password"));

Ich füge noch einmal eine der einfachsten Möglichkeiten hinzu, um bei einem Assertionsfehler fortzufahren.Dies wurde hier gefragt.

try{
        Assert.assertEquals(true, false);
        }catch(AssertionError e)
        {
            System.out.println("Assertion error. ");
        }

        System.out.println("Test Completed.");

Sobald eine Zusicherung fehlschlägt, sollte die Ausführung gestoppt werden. Daher sollten Sie sie verwenden.

Sie können eine Behauptung deklarieren, die beide Dinge testet, aber dann testen Sie zwei Dinge gleichzeitig.Beheben Sie besser die Ursache des ersten Fehlers und fahren Sie dann mit der zweiten Behauptung fort.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top