Intellij idea 配置IntelliJ以便运行测试需要特定的配置文件?

Intellij idea 配置IntelliJ以便运行测试需要特定的配置文件?,intellij-idea,playframework,functional-testing,Intellij Idea,Playframework,Functional Testing,我正在使用Play Framework 2.3和IntelliJ IDEA 14。我在我的应用程序中使用了一个Mailer插件。在将这一行添加到build.SBT之后,我在SBT控制台中运行test命令时编写了一些功能测试,这些测试非常有效: javaOptions in Test += "-Dconfig.file=conf/application.test.conf" smtp.mock=yes 然后将这个文件添加到文件conf/application.test.conf: javaOp

我正在使用Play Framework 2.3和IntelliJ IDEA 14。我在我的应用程序中使用了一个Mailer插件。在将这一行添加到build.SBT之后,我在SBT控制台中运行
test
命令时编写了一些功能测试,这些测试非常有效:

javaOptions in Test += "-Dconfig.file=conf/application.test.conf"
smtp.mock=yes
然后将这个文件添加到文件conf/application.test.conf

javaOptions in Test += "-Dconfig.file=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");
    });
}
有人能帮我吗


谢谢

除非我弄错了,否则SBT使用
config.file
设置,以及
conf/application.test.conf
文件。因此,运行测试时IntelliJ IDEA不会加载它及其包含的设置,即使您通过VM选项文本字段指定了
config.file
设置。相反,您必须将
-Dsmtp.mock=yes
设置(位于
application.test.conf
文件中的任何其他设置)放在VM选项文本字段中


如果可行,您可以将参数添加到“运行/调试配置”对话框中“默认”组下的“虚拟机选项”文本字段的JUnit设置中,以便您创建的任何新测试都将对其进行预设。

在您的运行配置中,选择JUnit,然后单击扳手编辑默认配置。然后,在VM选项中,添加
-Dconfig.file=/absolute/path/to/application.test.conf

我希望IntelliJ能够接受任何配置文件,但这很有效,非常感谢。您是对的,此文件由SBT使用。您应该要求测试和应用程序运行/调试配置能够获取用于设置VM选项的配置文件。我认为这将是一个很大的提高。在这里发布请求的ID/链接,我当然会投赞成票。你也可以将-Dconfig.file选项直接添加到VM选项中,我就是这么做的,而且效果很好,只需确保设置绝对路径,相对路径对我不起作用。