Domanda

Ho un elenco di file jar, tutti contenenti versioni leggermente diverse dello stesso sistema.

Voglio eseguire una serie di casi di test su ciascun file jar, pur essendo in grado di ottenere i risultati per ciascun vaso (tramite RunListener o qualcosa del genere).

Sono un po 'confuso con i problemi di caricamento della classe che sono implicati.

Come posso farlo bene?

È stato utile?

Soluzione

Se si utilizza ant, l'attività JUnit prende un percorso di classe.

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

È possibile utilizzare l'attività antcall per chiamare ripetutamente la destinazione del test con un valore diverso per la proprietà test.jar.path.

Altri suggerimenti

Se i vasetti mantengono la stessa interfaccia, allora tutto ciò che devi fare è eseguire ogni test con un percorso di classe leggermente diverso - ogni volta con vasetti di un'altra versione.

Se si utilizza l'integrazione di Eclipse JUnit, basta creare N configurazioni di esecuzione, in ognuna nella scheda del percorso di classe specificare i barattoli richiesti.

Se vuoi farlo a livello di codice, allora ti suggerisco di iniziare con un percorso di classe vuoto e usare URLClassLoader , dando ogni volta un diverso set di vasetti.

Qualcosa del genere:

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top