2015-12-29 4 views
3

Я работаю над веб-приложением.Как делиться ресурсами между тестом и основным?

Это моя структура проекта

src/ 
├── main 
│   ├── java 
│   ├── resources 
│   └── webapp 
└── test 
    ├── java 
    └── resources 

В моих тестах я хочу вызвать метод из класса в java, который использует файл в resources.

Так что я хочу знать, как разделить ресурсы между main и test?

Я не хочу копировать файлы в test-resources каждый раз, когда я их редактирую.

Я попытался SYMLINK, но получил сообщение об ошибке «Не удается скопировать test-classes потому, что файл не exist.`

И это, как я получить доступ к ресурсу в случае имеет значение

class.getResourceAsStream("/data.yml"); 

EDIT


Таким образом, по-видимому, Maven делать совместно использовать ресурсы между основным и тестом по умолчанию, но это не тот случай ,

Когда-нибудь я могу видеть мои ресурсы от main до target/classes, но ничего не найдено в target/test-classes.

+0

Вы говорите, что файлы заканчиваются на '.properties'? – OPK

+0

@JasonZ Нет, это файл yaml, но как это важно? Я редактировал свой вопрос, чтобы показать, как я обращаюсь к ним в классе. –

ответ

1

С Maven ваши файлы под src/main/resources по умолчанию используются с src/test/resources. Просто поместите их туда, и они также будут доступны из папки test.

+0

Мои ресурсы уже существуют в основном, но когда я его создаю, он не копируется в 'test-classes'. –

+0

Эй, ты думаешь, что можешь взглянуть на мое редактирование? Я не уверен, что мне не хватает. Я искал везде и ничего не мог найти. –

+0

Они находятся в разных классах погрузчиков. Вот почему вы должны использовать 'MyClass.class.getClassLoader(). GetResourceAsStream (" data.yml ")' вместо того, что вы написали. –

4

Файлы, представленные в main, видны в test.

Таким образом, вы можете поместить ресурсы на основное дерево, если это необходимо для обоих тестов и основного.

Если ресурсы необходимы только для теста, поместите их в тестовое поддерево.

+0

Мои ресурсы уже существуют в основном, но когда я его создаю, он не копируется в 'test-classes'. –

Смежные вопросы