JUnit : Tests instanciés dynamiquement

JUnit : Tests instanciés dynamiquement - Java - Programmation

Marsh Posté le 07-07-2011 à 10:28:48    

Salut,
 
Je souhaite mettre en place des tests sur le contenu d'une base données, tests qui seraient lancés automatiquement toutes les nuits.
 
Dans le test, je veux tester une méthode sur chacun des articles de ma base.
 
Problème:
Si je fais quelque chose du style :

Code :
  1. for(article a : Articles){
  2.      assertTrue([...]);
  3. }


le test s'arrêtera à la première erreur, ce que je ne veux pas.  
 
Je veux plutôt avoir des statistiques sur le nombre d'assert réussis ou foirés et pour les erreurs, connaître la ligne qui pose problème.
J'ai bien essayé en faisant plusieurs TestCase mais je ne vois pas comment y passer des informations contextuelles. (La classe TestSuite accepte apparemment que des classes de TestCase et pas des instances de classes).
 
Quelqu'un a une idée?
J'ai l'impression que le test que je veux faire est plus proche du test d'intégration que du test unitaire mais si c'est le cas, je ne connais pas de framework adapté.

Reply

Marsh Posté le 07-07-2011 à 10:28:48   

Reply

Marsh Posté le 07-07-2011 à 13:52:04    

Contournement (crado) si le but est uniquement de compter le nombre d'erreurs :

 
Code :
  1. int errors;
  2. for(article a : Articles){
  3.    if ([...]) {
  4.         i++;
  5.    }
  6. }
  7. assertEquals(0, errors, "Nombre d'erreurs : " + errors);
 

Rien n'empêche ensuite de ne pas avoir un int mais une liste d'objet dédié / tuple / map pour stocker ce que tu souhaites (ne serait-ce que le nom des articles en défaut). C'est plus le même mécanisme, mais ça peut suffire.


Message édité par LeRiton le 07-07-2011 à 13:53:04
Reply

Marsh Posté le 10-07-2011 à 15:02:42    

Même si c'est un peu crado, cette solution a le mérite d'exister ;)
 
Merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed