プログラムから他の JUnit テストを開始するプログラムがあります。最初に、それが何をするかを説明します: 1. フォルダにあるプログラムを検索します 2. jar を見つけて、テスト クラスを検索します
今、そのテストクラスを実行したいのですが、これでクラスを開始すると、クラスが見つからないというエラーが表示されます:
for (String testclass: arrayList){
Class cl = Class.forName(testclass);
Logger.error(TestEnablerViewtool.class, "CL NAME : " + cl.getName());
JUnitTest test = new JUnitTest(cl.getName());
test.setTodir(new File(pathToReports));
task.addTest(test);
task.execute();
}
そして、このコードでクラスを見つけます:
public static List<String> getClasseNamesInPackage(String jarName, String packageName){
String s = "C:\\CMS\\CMS\\WEB-INF\\lib\\plugin-Login.jar";
jarName = "Login";
packageName = "test/" + jarName + "/deploy";
ArrayList<String> arrayList = new ArrayList<String> ();
packageName = packageName.replaceAll("\\." , "/");
try {
JarInputStream jarFile = new JarInputStream(new FileInputStream(s));
JarEntry jarEntry;
while(true) {
jarEntry=jarFile.getNextJarEntry();
if(jarEntry.getName() == null) {
break;
}
if((jarEntry.getName().startsWith (packageName)) &&
(jarEntry.getName().endsWith (".class")) ) {
arrayList.add(jarEntry.getName().replaceAll("/", "\\."));
}
}
}
catch( Exception e){
e.printStackTrace ();
}
return arrayList;
}
質問が明確であることを願っています..