问题 配置IntelliJ所以它需要一个特定的配置文件来运行测试?


我正在使用Play Framework 2.3和IntelliJ IDEA 14.我在我的应用程序中使用了Mailer插件。我写了一些功能测试,当我运行时,它可以很好地工作 test 将此行添加到SBT控制台中的命令 build.sbt

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");
    });
}

谁可以帮我这个事?

谢谢!


6395
2018-01-12 13:38


起源



答案:


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

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


9
2018-01-12 16:10



我希望有些东西可以让IntelliJ接受任何配置文件,但是这样做非常感谢。你是对的,SBT使用这个文件。 - Thomas
你应该 打开功能请求 要求测试和应用程序运行/调试配置能够采用配置文件来设置VM选项。我认为这将是一个很大的改进。在这里发布请求的ID /链接,我当然会投票支持它。其他人也可能。 - Javaru
好主意。这是 链接。 - Thomas
您还可以将选项-Dconfig.file直接添加到VM选项中,这就是我所做的并且它运行良好,只需确保设置绝对路径,相对对我不起作用。 - Aphax


答案:


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

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


9
2018-01-12 16:10



我希望有些东西可以让IntelliJ接受任何配置文件,但是这样做非常感谢。你是对的,SBT使用这个文件。 - Thomas
你应该 打开功能请求 要求测试和应用程序运行/调试配置能够采用配置文件来设置VM选项。我认为这将是一个很大的改进。在这里发布请求的ID /链接,我当然会投票支持它。其他人也可能。 - Javaru
好主意。这是 链接。 - Thomas
您还可以将选项-Dconfig.file直接添加到VM选项中,这就是我所做的并且它运行良好,只需确保设置绝对路径,相对对我不起作用。 - Aphax


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


4
2017-08-16 14:06