Я использую Maven и запустить тест JUnit на статический метод, который пытается прочитать в файле с помощью:getResourceAsStream() - InputStream нуль при использовании относительного пути
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
а затем с помощью new InputStreamReader(is)
использовать как читатель в другом вызове. Это работает, когда filename
является только именем файла (например, file.csv
), но когда filename
является относительным путем (например, src/test/resources/file.csv
), is
заканчивается null
.
Мне нужно, чтобы он обрабатывал относительные пути, потому что я запускаю тестовый пакет через JUnit, который ищет ресурсы с относительными путями, и эти тесты поступают из JAR, что я не могу контролировать изменения (т.е. я реализовал фасад класс реализации, который тестовый набор использует, чтобы называть свои собственные тесты собственными ресурсами - они не поддаются контролю).
Есть ли способ для этого подхода работать с относительными путями или каким-либо другим способом, чтобы я мог найти эти ресурсы на моем пути к классам, которые ищут тесты?
Попробуйте удалить src и начать с/test. – Renatols
Относительно чего? – RealSkeptic
Это был просто общий пример. Я не смогу изменить пути, которые получают, потому что они находятся в наборе тестирования, который я не могу изменить. Надежда состоит в том, что необходимые ресурсы накладываются на мой путь к классу, а затем код будет соответствующим образом находить их при создании InputStream. – aconkey