Comment puis-je inclure un échec de la capture d'écran de la testNG rapport
actuellement, je prends des captures d'écran de mes échecs aux tests de cette façon:
@AfterMethod(alwaysRun=true)
public void catchExceptions(ITestResult result){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String methodName = result.getName();
if(!result.isSuccess()){
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(scrFile, new File((String) PathConverter.convert("failure_screenshots/"+methodName+"_"+formater.format(calendar.getTime())+".png")));
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Puis-je ajouter mes propres captures d'écran dans le TestNG lien de rapport ou de pic? Si oui, comment?
Tous j'ai trouvé sur l'internet est le FEST-cadre. Mais depuis que je suis déjà pris des captures d'écran, je ne veux pas utiliser un autre cadre.
OriginalL'auteur Tarken | 2012-01-20
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez inclure un lien vers votre capture d'écran dans testng rapport.
Vous devez appeler
org.testng.Reporter.log
méthode pour écrire le lien hypertexte vers le testng, le rapport annoter votre classe de test ou un parent de tous les testclasses avec @Auditeurs({yourListener.class}) ou par l'ajout de l'écouteur à votretestng.xml
.Vous devez d'abord créer une classe Écouteur et l'ajouter à testng. Vous pouvez obtenir les détails de testng.org. Recherche pour l'auditeur.
Une fois que vous créez cette classe, vous devez écrire une méthode qui remplace la
ontestfailure
méthode. Le code à l'intérieur de cette méthode sera exécutée à chaque fois que testng identifie un échec.Vous pouvez appeler votre capture d'écran de l'accaparement de la méthode et de l'utilisation
Reporter.log
de mettre le lien pour que la capture d'écran. Ensuite, vous pouvez trouver ce lien, en vertu de l'échec de cas de tests de détails.Oui. Vous devez d'abord créer une classe Écouteur et l'ajouter à testng. Vous pouvez obtenir les détails de testng.org. Recherche pour l'auditeur. Une fois que vous créez cette classe, vous devez écrire une méthode qui remplace la ontestfailure méthode. Le code à l'intérieur de cette méthode sera exécutée à chaque fois que testng identifie un échec. Vous pouvez appeler votre capture d'écran de l'accaparement de la méthode et de l'utilisation de Journaliste.journal pour mettre le lien hypertexte vers cette capture d'écran. Ensuite, vous pouvez trouver ce lien, en vertu de l'échec de cas de tests de détails.
Excellent. A travaillé comme un charme. Fascinant, comment une telle brève description peut être utile;) Un peu plus de détails. Étendre TestNG TestListenerAdapter, de mettre en œuvre onTestFailure comme dans la question ci-dessus, et ajouter à la fin de la Journaliste.log("<un href='" + screenshotFile.getAbsolutePath() + "'>capture d'écran</a>");, d'annoter votre classe de test ou un parent de tous les testclasses avec @Auditeurs({yourListener.class}). Et vous avez terminé.
Je suis en supposant que vous êtes l'exécution de ce test à partir d'eclipse à l'aide de plugin testNG. Vous devez aller dans les propriétés de votre projet, puis à testNG section et cochez l'option " projet testng jar. Votre problème sera résolu
Si vous avez selenium-standalone.jar et testng.jar dans votre chemin de la bibliothèque, vous avez besoin de modifier l'ordre des fichiers jar. Je suppose que selenium.jar a une ancienne version de testNG qui est à l'origine de ce comportement étrange.
OriginalL'auteur A.J