У меня есть проект 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.