Domanda

Sto usando Selenium RC usando Java con eclipse e il framework TestNG.Ho il seguente frammento di codice:

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

La prima asserzione non è riuscita e l'esecuzione è stata interrotta.Ma voglio continuare con l'ulteriore snippet di codice.

È stato utile?

Soluzione

Selenium IDE utilizza la verifica per eseguire un'asserzione soft, il che significa che il test continuerà anche se il controllo fallisce e segnalerà gli errori alla fine del test o in caso di asserzione hard.

Con TestNG è possibile avere queste asserzioni morbide utilizzando listener di test personalizzati.Ho documentato come farlo sul mio blog: http://davehunt.co.uk/2009/10/08/using-soft-assertions-in-testng.html

Fondamentalmente, è necessario creare i propri metodi verify*, in questi è possibile rilevare gli errori di asserzione e aggiungerli a una mappa.Quindi in un listener afterInvocation personalizzato puoi impostare il test come fallito se la mappa non è vuota.

Altri suggerimenti

Ti suggerisco di utilizzare asserzioni soft, fornite in TestNg in modo nativo

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();
}

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

Modifica le tue asserzioni in verifiche:

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

Aggiungo di nuovo uno dei modi più semplici per continuare in caso di errore di asserzione.Questo è stato chiesto qui .

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

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

Una volta che un'asserzione fallisce, l'esecuzione dovrebbe interrompersi, questo è il punto per usarle.

Puoi dichiarare un'asserzione che verifica entrambe le cose, ma poi stai testando due cose contemporaneamente.Meglio correggere la causa del primo errore, quindi passare alla seconda affermazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top