2015-01-12 3 views
10

Я использую Play Framework 2.3 и IntelliJ IDEA 14. Я использую плагин Mailer в своем приложении. Я написал несколько функциональных тестов, которые работают прекрасно, когда я запускаю команду test в консоли SBT, после добавления этой строки в build.sbt:Настройка IntelliJ, поэтому для запуска тестов требуется определенный файл конфигурации.

javaOptions in Test += "-Dconfig.file=conf/application.test.conf" 

И это один в файл Conf/application.test .conf:

smtp.mock=yes 

К сожалению, когда я запускать тесты прямо из IntelliJ, я получаю эту ошибку:

java.lang.RuntimeException: smtp.host needs to be set in application.conf in order to use this plugin (or set smtp.mock to true) 

Я попытался запустить эти тесты с аргументом VM -Dconfig.file=conf/application.test.conf, без успеха.

Вот два примера испытаний я пытаюсь выполнить:

@Test 
public void testWithServer() { 
    running(testServer(3333),() -> { 
     assertThat(WS.url("http://localhost:3333").get().get(1000).getStatus()).isEqualTo(OK); 
    }); 
} 

@Test 
public void testWithBrowser() { 
    running(testServer(3333), HTMLUNIT, browser -> { 
     browser.goTo("http://localhost:3333"); 
     assertThat(browser.$("title").getText()).isEqualTo("Welcome"); 
    }); 
} 

Может кто-нибудь помочь мне в этом?

Спасибо!

ответ

8

Если я ошибаюсь, настройка config.file и, следовательно, файл conf/application.test.conf, используется SBT. Таким образом, IntelliJ IDEA при запуске теста не загружает его и содержащиеся в нем параметры, даже если вы задаете параметр config.file через текстовое поле «Параметры виртуальной машины». Вместо этого вы должны установить параметр -Dsmtp.mock=yes (любые любые другие параметры, которые находятся в файле application.test.conf) в текстовом поле «Параметры виртуальной машины».

Если это работает, вы можете добавить аргументы (аргументы) в текстовое поле «Параметры виртуальной машины» в параметры JUnit в группе «По умолчанию» в диалоговом окне «Запуск/отладка», чтобы все новые тесты, которые вы создали, предварительно настроили.

+0

Я надеялся, что что-то может заставить IntelliJ взять любой файл конфигурации, но это работает так, спасибо. И вы правы, этот файл используется SBT. – Thomas

+0

Вы должны [открыть запрос функции] (https://youtrack.jetbrains.com) с просьбой о том, чтобы конфигурации запуска и тестирования приложений и приложений могли принимать файл конфигурации для настройки параметров виртуальной машины. Я думаю, это будет большим улучшением. Отправьте идентификатор запроса/ссылку здесь, и я, безусловно, проголосую за него. Другие, скорее всего, тоже. – Javaru

+0

Хорошая идея. Вот ссылка [https://youtrack.jetbrains.com/issue/IDEA-135173). – Thomas

2

В настройках запуска выберите JUnit, а затем нажмите гаечный ключ, чтобы изменить конфигурацию по умолчанию. Затем в параметрах VM добавьте -Dconfig.file=/absolute/path/to/application.test.conf.

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