Tests et TestNG

Résultats des tests

Où trouve-t-on les résultats de TestNG?

Les résultats générés lors de l'éxécution des tests sont stockés dans un dossier test-output dans le workspace dans lequel vous avez exécuté le code Ils sont présents dans ce dossier sous forme de fichier html: index.html Cependant les plugin des IDE, peuvent nous permettre de voir directement les résultats.

Exemple d'exécution

Je vais présenter un exemple d'éxécution de tests ainsi que les fichiers de résultats ainsi générés.
Pour ce faire je vais exécuter des tests sur un exemple basic de code représentant une bibliothéque et la gestion de celle-ci:

Tout d'abord voici l'arborescence de mon projet:

Le premier package contient le code métier de l'application tandis que les deux suivants eux contiennent des classes de tests Enfin nous remarquons la présence du fichier testng.xml (notre campagne de tests). Pour cet exemple, je m'attacherai à tester les méthodes de la classe GestionBibliothéque.

Voici le code permettant de g&aecute;rer la bibliothéque. Pour les besoins de la démonstration, nous ne voulons pas pouvoir insérer un livre déjà présent dans la bibliothéque.

public class GestionBiblio {

	public static boolean ajouterLivre(Livre livre, Bibliotheque biblio) {
		// verification that book doesnt exist in bookshelves before insert it
		if (biblio.getBiblio().contains(livre)) {

			boolean b = biblio.getBiblio().add(livre);
			System.out.println(b);
			return b;
		}
		return false;
	}

	public static boolean chercherUnLivre(Livre livre, Bibliotheque biblio) {
		return biblio.getBiblio().contains(livre);
	}

	public static void supprimerLivre(Livre livre, Bibliotheque biblio) {
		biblio.getBiblio().remove(livre);
	}

	public static void listerBibliotheque(Bibliotheque biblio) {
		ArrayList listeBiblio = biblio.getBiblio();
		for (Livre l : listeBiblio) {
			System.out.println(l);
		}
	}
}		
Si vous observez ce code, plus particulièrement la méthode d'ajout, vous verrez une erreur.

Maintenant voici le code des classes de tests:

Maintenant que je vous ai présenté les deux classes de tests illustrant mon propos, voici ce qui se passe quand je lance les tests en faisant un "run" de notre fichier de campagne de tests (testng.xml):

[PackageUtils] Looking for test classes in the directory: C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\bin\univ\mlv\fr\xpose\tests\packages
[PackageUtils] Found class TestBibliotheque, seeing it if it's included or excluded
[PackageUtils] ... Including class TestBibliotheque
[TestRunner] Running the tests in 'testRecherche' with parallel mode:false
[RunInfo] Adding method selector: org.testng.internal.XmlMethodSelector@1d05c81 priority: 10
[TestClass] Creating TestClass for [ClassImpl univ.mlv.fr.xpose.tests.packages.TestBibliotheque]
[TestClass] Adding method TestBibliotheque.testChercherUnlivreOk()[pri:0, instance:null] on TestClass class univ.mlv.fr.xpose.tests.packages.TestBibliotheque
[TestClass] Adding method TestBibliotheque.testChercherUnlivreNok()[pri:0, instance:null] on TestClass class univ.mlv.fr.xpose.tests.packages.TestBibliotheque
[XmlMethodSelector] Including method univ.mlv.fr.xpose.tests.packages.testChercherUnlivreOk()
[XmlMethodSelector] Including method univ.mlv.fr.xpose.tests.packages.testChercherUnlivreNok()
[TestRunner] Running the tests in 'testAjout' with parallel mode:false
[RunInfo] Adding method selector: org.testng.internal.XmlMethodSelector@c53dce priority: 10
[TestClass] Creating TestClass for [ClassImpl univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque]
[TestClass] Adding method TestAjoutBibliotheque.f()[pri:0, instance:null] on TestClass class univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque
[TestClass] Adding method TestAjoutBibliotheque.testAjoutNonRedondant(java.lang.String, univ.mlv.fr.xpose.biblio.Livre)[pri:0, instance:null] on TestClass class univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque
[TestClass] Adding method TestAjoutBibliotheque.testAjoutRedondant()[pri:0, instance:null] on TestClass class univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque
[XmlMethodSelector] Including method univ.mlv.fr.xpose.tests.classes.f()
[XmlMethodSelector] Including method univ.mlv.fr.xpose.tests.classes.testAjoutNonRedondant()
[XmlMethodSelector] Including method univ.mlv.fr.xpose.tests.classes.testAjoutRedondant()
[TestNG] Running:
  C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\testng.xml

[SuiteRunner] Created 2 TestRunners
[TestRunner] Running test testRecherche on 1  classes,  included groups:[] excluded groups:[] 
===== Test class
univ.mlv.fr.xpose.tests.packages.TestBibliotheque
    @Test TestBibliotheque.testChercherUnlivreOk()[pri:0, instance:univ.mlv.fr.xpose.tests.packages.TestBibliotheque@cf40f5]
    @Test TestBibliotheque.testChercherUnlivreNok()[pri:0, instance:univ.mlv.fr.xpose.tests.packages.TestBibliotheque@cf40f5]
======
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.packages.TestBibliotheque.testChercherUnlivreNok
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.packages.TestBibliotheque.testChercherUnlivreOk
===== Invoked methods
    TestBibliotheque.testChercherUnlivreNok()[pri:0, instance:univ.mlv.fr.xpose.tests.packages.TestBibliotheque@cf40f5] 13582581
    TestBibliotheque.testChercherUnlivreOk()[pri:0, instance:univ.mlv.fr.xpose.tests.packages.TestBibliotheque@cf40f5] 13582581
=====
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testRecherche.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testRecherche.xml
PASSED: testChercherUnlivreNok
PASSED: testChercherUnlivreOk

===============================================
    testRecherche
    Tests run: 2, Failures: 0, Skips: 0
===============================================

[TestRunner] Running test testAjout on 1  classes,  included groups:[] excluded groups:[]
===== Test class
univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque
    @Test TestAjoutBibliotheque.f()[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68]
    @Test TestAjoutBibliotheque.testAjoutNonRedondant(java.lang.String, univ.mlv.fr.xpose.biblio.Livre)[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68]
    @Test TestAjoutBibliotheque.testAjoutRedondant()[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68]
======
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.f
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutNonRedondant
ajout de: "titre1" de prenom1 nom1
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutNonRedondant
ajout de: "titre2" de prenom2 nom2
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutNonRedondant
ajout de: "titre3" de prenom1 nom1
[Invoker 10923757] Invoking univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutRedondant
===== Invoked methods
    TestAjoutBibliotheque.f()[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68] 22781544
    TestAjoutBibliotheque.testAjoutNonRedondant(java.lang.String, univ.mlv.fr.xpose.biblio.Livre)[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68]livre 1 "titre1" de prenom1 nom1  22781544
    TestAjoutBibliotheque.testAjoutNonRedondant(java.lang.String, univ.mlv.fr.xpose.biblio.Livre)[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68]livre 2 "titre2" de prenom2 nom2  22781544
    TestAjoutBibliotheque.testAjoutNonRedondant(java.lang.String, univ.mlv.fr.xpose.biblio.Livre)[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68]livre 3 "titre3" de prenom1 nom1  22781544
    TestAjoutBibliotheque.testAjoutRedondant()[pri:0, instance:univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque@15b9e68] 22781544
=====
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testAjout.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testAjout.xml
PASSED: f
PASSED: testAjoutRedondant
FAILED: testAjoutNonRedondant("livre 1", "titre1" de prenom1 nom1)
java.lang.AssertionError: expected: but was:
	at org.testng.Assert.fail(Assert.java:89)
	at org.testng.Assert.failNotEquals(Assert.java:489)
	at org.testng.Assert.assertEquals(Assert.java:118)
	at org.testng.Assert.assertEquals(Assert.java:281)
	at org.testng.Assert.assertEquals(Assert.java:291)
	at univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutNonRedondant(TestAjoutBibliotheque.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:691)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:758)
	at org.testng.TestRunner.run(TestRunner.java:613)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1142)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1067)
	at org.testng.TestNG.run(TestNG.java:979)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:109)
	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:202)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173)

FAILED: testAjoutNonRedondant("livre 2", "titre2" de prenom2 nom2)
java.lang.AssertionError: expected: but was:
	at org.testng.Assert.fail(Assert.java:89)
	at org.testng.Assert.failNotEquals(Assert.java:489)
	at org.testng.Assert.assertEquals(Assert.java:118)
	at org.testng.Assert.assertEquals(Assert.java:281)
	at org.testng.Assert.assertEquals(Assert.java:291)
	at univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutNonRedondant(TestAjoutBibliotheque.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:691)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:758)
	at org.testng.TestRunner.run(TestRunner.java:613)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1142)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1067)
	at org.testng.TestNG.run(TestNG.java:979)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:109)
	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:202)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173)

FAILED: testAjoutNonRedondant("livre 3", "titre3" de prenom1 nom1)
java.lang.AssertionError: expected: but was:
	at org.testng.Assert.fail(Assert.java:89)
	at org.testng.Assert.failNotEquals(Assert.java:489)
	at org.testng.Assert.assertEquals(Assert.java:118)
	at org.testng.Assert.assertEquals(Assert.java:281)
	at org.testng.Assert.assertEquals(Assert.java:291)
	at univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.testAjoutNonRedondant(TestAjoutBibliotheque.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:691)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:883)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1208)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:758)
	at org.testng.TestRunner.run(TestRunner.java:613)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:87)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1142)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1067)
	at org.testng.TestNG.run(TestNG.java:979)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:109)
	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:202)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:173) 


===============================================
    testAjout
    Tests run: 5, Failures: 3, Skips: 0
===============================================


===============================================
testGestionBiblio
Total tests run: 7, Failures: 3, Skips: 0
===============================================

[TestNG] Time taken by org.testng.reporters.EmailableReporter@1a679b7: 15 ms
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\toc.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testRecherche.properties
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testAjout.properties
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\index.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\main.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\groups.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-alphabetical.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\classes.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\reporter-output.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\methods-not-run.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testng.xml.html
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\index.html
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1e51060: 269 ms
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\junitreports\TEST-univ.mlv.fr.xpose.tests.classes.TestAjoutBibliotheque.xml
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\junitreports\TEST-univ.mlv.fr.xpose.tests.packages.TestBibliotheque.xml
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@337d0f: 8 ms
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testng-results.xml
[TestNG] Time taken by org.testng.reporters.XMLReporter@e102dc: 9 ms

Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testng-failed.xml
Creating C:\Users\joelle\Documents\Ingenieurs2000\ECOLE\IR3\xposé\xpose_workspace\XposeIR3\test-output\testGestionBiblio\testng-failed.xml
[TestNG] Time taken by [TestListenerAdapter] Passed:0 Failed:0 Skipped:0]: 7 ms

Nous remarquons que tous les tests ne sont pas passés en succès. De plus nous voyons que à la fin de l'exécution des tests, les résultats sont aussi accessibles par le biais de fichier xml:

Nos tests nous montrent que nous avons une erreur dans la méthode qui permet d'ajouter des livres. Effectivement nous faisons le contraire de ce que nous avions défini, nous ajoutons un livre quand celui-ci existe déjà dans la bibliothèque.
Nous corrigeons donc la méthode de la manière suivante:


		
		public static boolean ajouterLivre(Livre livre, Bibliotheque biblio) {
		// verification that book doesnt exist in bookshelves before insert it
		if (!biblio.getBiblio().contains(livre)) {

			boolean b = biblio.getBiblio().add(livre);
			System.out.println(b);
			return b;
		}
		return false;
	}
		
Cette fois, nos tests passent.

Nous pouvons voir les résultats soit directement dans Eclipse:

Soit grâce au fichier index.html

Nous voyons dans cet exemple le nom des classes et méthodes de tests ainsi que leur statut.

Définition d'un type de fichier resultat personnel

TestNG offre la possibilité de spécifier un nouveau type de fichier de sortie. Pour ce faire, il existe deux classes à implémenter:

Retour en haut de la page