Executar Testes em tempo de Execução

1 resposta
Talles_Santana

Boa tarde, estou com um problema que é o seguinte:
Cenário: Dado um diretório qualquer, haverão arquivos de classe que eu não sei quais serão, mas sei que lá estarão arquivos de Teste(JUnit).
Rodar os testes sabendo qual é a classe eu sei como fazer, vide o código abaixo:

public static void main(String[] args) {
        Result result = JUnitCore.runClasses(ClasseDeTeste.class);
	System.out.println("Tempo de Execução dos Testes: " + (result.getRunTime()/1000f) +" segundos");
	System.out.println("Executados: " + result.getRunCount());
	System.out.println("Falhas: " + result.getFailureCount()+"\n\n");
}

Problema: como obter a Classe de teste em tempo de execução de modo que não tenha que escrever “ClasseDeTeste.class”?

Observações:
Já pensei em adicionar o arquivo no classpath em tempo de execução. Porém não consegui fazê-lo. O código abaixo dá erro.

URL[] meuClassPath = {(new File("C:/libs/ClasseDeTeste.java")).toURL()}; // "ClasseDeTeste.class" também não funciona
	
	ClassLoader customLoader = new URLClassLoader(meuClassPath);
	
	Class classe = Class.forName("ClasseDeTeste", true, customLoader);
	
	System.out.println(classe.getClass());

Dá java.lang.ClassNotFoundException.

Alguma idéia de como resolver o problema?
Grato,
Talles Santana

1 Resposta

M

Acredito que você deva adicionar o diretório no seu ClassLoader (“C:/libs”).

Outra coisa: a classe que você quer testar não está em um pacote?

Criado 10 de dezembro de 2010
Ultima resposta 13 de dez. de 2010
Respostas 1
Participantes 2