Comment exécuter des cas de test sur une liste de pots légèrement différents?

StackOverflow https://stackoverflow.com/questions/419833

  •  05-07-2019
  •  | 
  •  

Question

J'ai une liste de fichiers jar contenant tous des versions légèrement différentes du même système.

Je souhaite exécuter un ensemble de scénarios de test sur chaque fichier JAR tout en pouvant obtenir les résultats de chaque fichier JAR (via RunListener ou quelque chose du genre).

Je suis un peu confus avec les problèmes de chargement de classe impliqués.

Comment puis-je faire cela gentiment?

Était-ce utile?

La solution

Si vous utilisez ant, la tâche JUnit utilise un chemin de classe.

<target name="test">
  <junit ...">
    <classpath>
      <pathelement path="${test.jar.path}" />
    </classpath>
    ...
  </junit>
</target>

Vous pouvez utiliser la tâche antcall pour appeler votre cible de test à plusieurs reprises avec une valeur différente pour la propriété test.jar.path.

Autres conseils

Si les fichiers JAR conservent la même interface, il vous suffit alors d'exécuter chaque test avec un chemin de classe légèrement différent, à chaque fois avec des fichiers JAR d'une autre version.

Si vous utilisez l'intégration Eclipse JUnit, créez simplement N configurations d'exécution. Dans chacune des cases de l'onglet Chemin de classe, spécifiez les fichiers JAR requis.

Si vous voulez le faire par programme, je vous suggère de commencer avec un chemin de classe vide et d'utiliser URLClassLoader , ce qui lui donne un ensemble de bocaux différent à chaque fois.

Quelque chose comme ça:

URLClassloader ucl = new URLClassLoader( list of jars from version1 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();

ucl = new URLClassLoader( list of jars from version2 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top