Pregunta

Estoy usando Selenium RC usando Java con eclipse y el marco TestNG.Tengo el siguiente fragmento de código:

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

La primera afirmación fracasó y se detuvo la ejecución.Pero quiero continuar con el siguiente fragmento de código.

¿Fue útil?

Solución

Selenium IDE utiliza verificar para realizar una aserción suave, lo que significa que la prueba continuará incluso si la verificación falla e informará las fallas al final de la prueba o en caso de una aserción dura.

Con TestNG es posible tener estas afirmaciones suaves mediante el uso de oyentes de prueba personalizados.He documentado cómo hacer esto en mi blog: http://davehunt.co.uk/2009/10/08/using-soft-assertions-in-testng.html

Básicamente, necesitas crear el tuyo propio. verify* métodos, en estos puede detectar fallas de aserción y agregarlas a un mapa.Luego en una costumbre afterInvocation oyente, puede configurar la prueba como fallida si el mapa no está vacío.

Otros consejos

Le sugiero que use afirmaciones suaves, que se proporcionan en TestNg de forma nativa

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

Fuente: http://rameshbaskar.wordpress.com/2013/09/11 / aserciones-suaves-usando-testng /

Cambie sus afirmaciones por verificaciones:

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

Estoy agregando de nuevo una de las formas más fáciles de continuar con el error de afirmación.Esto se preguntó aquí .

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

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

Una vez que falla una aserción, la ejecución debería detenerse, ese es el punto de usarlas.

Puede declarar una afirmación que prueba ambas cosas, pero luego prueba dos cosas a la vez.Es mejor corregir la causa del primer error y luego pasar a la segunda afirmación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top