2016-10-27 4 views
3

Я разрабатываю приложение в Dropwizard 0.9, используя IntelliJ Idea в качестве моей IDE. У меня настроена конфигурация запуска, и она передает аргументы командной строки «server ./path/to/config.yml», чтобы указать файл конфигурации для запуска.Как указать конфигурационный файл Dropwizard в Intellij для модульных тестов?

Однако, когда я пытаюсь выполнить свои модульные тесты, я не могу определить, как передать этот путь к файлу конфигурации на сервер. Диалоговое окно «Run/Debug Configuration» имеет поле «Аргументы программы», но оно постоянно отключено (и кнопка редактирования рядом с ним ничего не делает).

Как включить параметры программы или, альтернативно, есть другой способ указать файл конфигурации для тестов?

+0

DW предлагает способ сделать то, что описано здесь: http://www.dropwizard.io/1.0.2/docs/manual/testing.html#integration-testing. Если вы укажете какой-то код и ваш подход, я, возможно, смогу помочь больше, однако, не увидев вашу настройку, я бы слепо догадался. – pandaadb

+0

Аналогичный вопрос: http://stackoverflow.com/questions/29087777/dropwizard-integration-test-cannot- найти-ресурс-файл/29096868 – zloster

ответ

1

Если ваш config.yml находится в корневой папке проекта, просто установите сервер config.yml в среде IDE. Взгляните на это video.

Если вы хотите получить доступ к config.yml из корневой папки проекта, просто передайте имя файла правилу.

@ClassRule 
public static final DropwizardAppRule<DWGettingStartedConfiguration> RULE 
     = new DropwizardAppRule<>(DWGettingStartedApplication.class, 
       "config.yml"); 

Также возможно сохранить файл конфигурации для тестов интеграции в папке src/test/resources. В этом случае файл можно получить, используя следующий код:

/** 
* A path to test configuration file. 
*/ 
private static final String CONFIG_PATH 
     = ResourceHelpers.resourceFilePath("test-config.yml"); 
/** 
* Start the application before all test methods. 
*/ 
@ClassRule 
public static final DropwizardAppRule<DropBookmarksConfiguration> RULE 
     = new DropwizardAppRule<>(
       DropBookmarksApplication.class, 
       CONFIG_PATH); 

Кроме того, пожалуйста, посмотрите на моем примере проектов here, here и here.

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