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