Post

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

By Enium
Há um tempo atrás escrevi um post demonstrando como dar print screen com Junit, Maven e Selenium se houvesse algum erro no teste.
Recentemente, um dos leitores do blog me perguntou se era possível fazer o mesmo só que usando o TestNG.
Como eu não uso muito o TestNG, eu não sabia se isso era possível, e fui atrás da documentação do TestNG e a do plugin Surefire do maven.
Para fazer isso, você terá que extender a classe TestListenerAdapter e implementar o método onTestFailure que será invocado após qualquer exceção disparada.
Deve ficar mais ou menos assim:

import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import com.thoughtworks.selenium.DefaultSelenium;

public class ScreenshotListener extends TestListenerAdapter
{

public void onTestFailure(ITestResult result)
{
try {

AbstractTestCase testCase = (AbstractTestCase) result.getTestClass().getInstances(false)[0];

DefaultSelenium selenium = testCase.getSelenium();
if (selenium != null) {
String fileName = System.getProperty(
“screenshots.dir”, “/tmp”)
+ “/” + result.getTestClass().getName() + “-” + result.getName() + “.png”;
System.out.println(“Capturando erro em: ” + fileName);
selenium.captureEntirePageScreenshot(fileName, “background=#FFFFFF”);
}

} catch (Exception e2) {
System.err
.println(“Não foi possível capturar o screenshot”);
}
}
}

Outro passo necessário é configurar o plugin surefire e informar o listener a ser usado:

org.apache.maven.plugins
maven-surefire-plugin

listener
br.com.seuenium.ScreenshotListener

Pronto.
Que tal integrar esse código com o exemplo de paralelização em testes do Selenium com TestNG descritos nesse post?
Como eu sou bonzinho, já deixei isso pronto. Pode baixar o exemplo AQUI e depois rode o comando mvn clean install.
Até a próxima.

Source: http://feedproxy.google.com/~r/seuenium/~3/DVXbsGriz2I/

Category: paralelizacao, selenium, maven, testng

Você também pode querer ler

Comments are off for this post.