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

标签 intellij-idea playframework functional-testing

我使用的是 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");
    });
}

谁可以帮我这个事?

谢谢!

最佳答案

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

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

关于intellij-idea - 配置 IntelliJ 以便运行测试需要特定的配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27903296/

相关文章:

scala - 如何测试 Scala Play 框架 websocket?

Grails Geb 测试执行顺序

java - 如何使用 IntelliJ IDEA 社区版调试 spring-boot 应用程序?

javascript - 忽略 IntelliJ 中 JavaScript 自动完成的文件

keyboard-shortcuts - IntelliJ IDEA : Move line?

java - 需要有关 NoSuchMethodError : com. google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor 的帮助;在 IntelliJ 中

playframework - Play Framework 2.0 模板引擎定义可写变量

java - 如何在play框架2.1中保存对象

cocoa - Mac App 的功能测试

java - 如何管理功能测试的应用程序数据?