¿Cómo ejecutar casos de prueba en una lista de tarros ligeramente diferentes?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Tengo una lista de archivos jar, todos con versiones ligeramente diferentes del mismo sistema.

Quiero ejecutar un conjunto de casos de prueba en cada archivo jar y poder obtener los resultados para cada jar (a través de RunListener o algo así).

Estoy un poco confundido con los problemas de carga de clase que están implícitos.

¿Cómo puedo hacer esto muy bien?

¿Fue útil?

Solución

Si está usando ant, la tarea JUnit toma una ruta de clase.

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

Puede usar la tarea antcall para llamar a su destino de prueba repetidamente con un valor diferente para la propiedad test.jar.path.

Otros consejos

Si los frascos mantienen la misma interfaz, todo lo que tienes que hacer es ejecutar cada prueba con un classpath ligeramente diferente, cada vez con jars de otra versión.

Si está utilizando la integración de Eclipse JUnit, simplemente cree N configuraciones de ejecución, en cada una de las pestañas de la ruta de clase especifique los archivos jar necesarios.

Si desea hacerlo mediante programación, le sugiero que comience con classpath vacío y use URLClassLoader , dándole un conjunto diferente de frascos cada vez.

Algo como esto:

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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top