У меня есть проект maven, который загружает файл xslt и выполняет преобразование вместе с другой обработкой результата. Обычно, когда пользователь запускает приложение, пользователь предоставляет путь к файлу xslt для загрузки. Но я включаю некоторые файлы xslt по умолчанию, входящие в состав моего приложения, которые пользователь может использовать без загрузки внешнего файла xslt. Я делаю это, добавляя их в src/main/resources/xslt. Моя проблема в том, что я хочу запускать тесты против этих xslt файлов на этапе тестирования. Как я могу это достичь? Должен ли я скопировать содержимое src/main/resources/xslt в цель/где-нибудь и загрузить их в код моего тестового класса? Какой плагин используется для этого?
Как использовать ресурсы maven также в качестве тестовых ресурсов
Ответ 1
Моя проблема в том, что я хочу запускать тесты против этих xslt файлов на этапе тестирования. Как я могу это достичь?
Нечего делать, target/classes находится на пути к классу тестов. Точнее, путь класса для тестов:
- сначала
target/test-classes - затем
target/classes - затем
dependencies
Итак, ресурсы из src/main/resources (которые скопированы в target/classes) видны из тестов.
Ответ 2
Если вы поместите файл foo.txt внутри src/test/resources/, вы можете открыть его через:
// try-with-resource (Java 1.7)
try (InputStream is = getClass().getClassLoader().getResourceAsStream("foo.txt")) {
// do something with is...
}
Вы также можете посмотреть maven-resources-plugin.