Como executar casos de teste em uma lista de ligeiramente diferentes frascos?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu tenho uma lista de arquivos jar, todos contendo versões ligeiramente diferentes do mesmo sistema.

Eu quero executar um conjunto de casos de teste em cada arquivo jar ao ser capaz de obter os resultados para cada frasco (via RunListener ou algo parecido).

Estou um pouco confuso com os problemas de carregamento de classes que estão implícitas.

Como posso muito bem fazer isso?

Foi útil?

Solução

Se você estiver usando formiga, a tarefa JUnit toma um caminho de classe.

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

Você pode usar a tarefa antcall para chamar o seu alvo de teste repetidamente com um valor diferenciado para a propriedade test.jar.path.

Outras dicas

Se os frascos manter a mesma interface, então tudo que você tem a fazer é executar cada teste com um classpath slighly diferente -. Cada vez com frascos de outra versão

Se você estiver usando integração Eclipse JUnit, apenas criar configurações de execução N, em cada um na guia classpath especificar frascos necessários.

Se você quiser fazê-lo por meio de programação, então eu sugiro que você comece com classpath vazio e uso URLClassLoader , dando-lhe um conjunto diferente de frascos de cada vez.

Algo parecido com isto:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top