Создание объекта файла завершается неудачно при запуске кода в качестве теста Junit в Eclipse / STS - PullRequest
0 голосов
/ 20 декабря 2018

В моем коде я создаю объект File на основе относительного пути к файлу в папке с исходным кодом.Все работает отлично при запуске этого кода под Tomcat.

Когда я запускаю точно такой же код, как JUnit / интеграционный тест, используя STS / Eclipse Run ... и выбираю JUnit, тест завершается неудачно, потому что он не может найтифайл, основанный на том же относительном пути, который работал, когда код выполнялся под Tomcat.

Вот как файл пытается быть создан в коде:

new File(getClass().getResource(relatativePathToTheFile).toURI())

Я пытался решитьэто сначала путем определения текущего пути при запуске теста junit с использованием этого кода:

System.out.println(this.getClass().getClassLoader().getResource(".").toURI().toString());

Это говорит мне, что текущая папка должна быть c: \ CODE \ myProjectName \ bin \ main, когдавыполнение кода как часть интеграционного теста.

файл, к которому я пытаюсь получить доступ из кода, находится здесь: c: \ CODE \ myProjectName \ src \ main \ webapp \ WEB-INF \ resources \ nameOfTheFile.test

Исходя из этого, я обновил свой относительный путь, используемый в выполняемом коде, следующим образом: /../../src/main/webapp/WEB-INF/resources/

"/../../" я пытаюсь пройти дваПройдите к корневой папке и оттуда начните навигацию к папке ресурсов.По какой-то причине даже это обновление не решило проблемы - я почти уверен, что путь правильный.

Возможно, по какой-то причине путь просто недоступен при запуске модульных тестов.Может быть, есть некоторая конфигурация Gradle или конфигурация STS / Junit, чтобы разобраться в этом.

Все мои интеграционные тесты находятся в папке ../src/integrationTest.Весь мой код находится в структуре папок, начиная с ../ src / main /

1 Ответ

0 голосов
/ 28 декабря 2018

Я в конце концов исправил это самостоятельно, переместив файлы в src / main / resources.Ранее они были полностью из этой папки.После этого тот же обновленный относительный путь к файлу работает во время выполнения кода в Tomcat или в тестовом средстве STS Junit.

...