Я пытаюсь запустить JUnit тестов из приложения, которое разрабатывается в Eclipse, как так:Запуск тестов JUnit программно вне их проекта Eclipse,
JUnitCore junitCore = new JUnitCore();
ClassLoader cl = Main.class.getClassLoader();
Class<?> test = cl.loadClass("test.TestCase1");
Result r = junitCore.run(test);
Это прекрасно работает, но если тест должен используйте некоторые файлы, я получаю FileNotFoundException
. Выполняя тот же тест в проекте Eclipse, тест не имеет такой ошибки. Я думаю, это связано с тем, что рабочий каталог JVM (определенный в свойстве user.dir
) не совпадает с проектом Eclipse. Насколько я знаю, я не могу изменить user.dir
в запущенной JVM.
Что можно сделать, чтобы изменить это поведение? Является ли мой единственный способ запустить новую JVM с тем же рабочим каталогом, что и проект Eclipse? Если да, то как я могу это сделать, желательно без использования таких инструментов, как Ant?
редактировать: Вот пример теста, который проходит в рамках проекта Eclipse, и генерирует FileNotFoundException
, когда я запускаю его программно вне проекта:
@Test
public void test() throws Exception {
FileInputStream fstream = new FileInputStream("test1.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
assertEquals("file content", br.readLine());
}
Не могли бы вы показать код snippest, который загружает ваши файлы? – Anton
@Umar Вы имеете в виду пример теста, который загружает файл? Я отредактирую это для вас. – aperez
Просто интересно узнать, почему вы хотите написать приложение для запуска junit, когда у вас есть junit-плагин по умолчанию в eclipse? –