Я пытаюсь написать некоторый код, который рекурсивно добавляет TestSuites в проект к набору пакетов, расположенных в корне иерархии пакетов.
Я уже написал код, который возвращает объект Collection, который содержит объект File для каждого Test Suite, найденного в моем проекте.
Я сейчас пытаюсь пройтись по ним и добавить их в TestSuite в файле с именем AllTests.java:
.
public static Test suite() throws IOException, ClassNotFoundException {
TestSuite suite = new TestSuite();
//Code not included for getTestSuites() in this snippet.
Collection<File> testSuites = getTestSuites();
for(File f: testSuites) {
//Truncate the path of the test to the beginning of the package name
String testName = f.getAbsolutePath().substring(f.getAbsolutePath().lastIndexOf("net"));
//Replace backslashes with fullstops
testName = testName.replaceAll("\\\\", ".");
//Take the .class reference off the end of the path to the class
testName = testName.replaceAll(".class", "");
//Add TestSuite to Suite of Suites
Class<? extends Test> test = (Class<? extends Test>) AllTests.class.getClassLoader().loadClass(testName);
suite.addTest(test);
}
К сожалению, я получаю следующую ошибку компилятора в строке suite.addTest (test):
Метод addTest (Test) в виде
TestSuite не применяется для
аргументы (класс )
Допускаю ли я фундаментальную ошибку, предполагая, что ссылка Class и ссылка Test - одно и то же?