没有完整 sbt 构建的 IDEA Play 2.4 junit 测试

Posted

技术标签:

【中文标题】没有完整 sbt 构建的 IDEA Play 2.4 junit 测试【英文标题】:IDEA Play 2.4 junit test without full sbt build 【发布时间】:2015-07-07 14:11:15 【问题描述】:

我想在 Intellij IDEA 14.1.4 中为我的 Play 2.4 应用程序运行 JUnit 测试,以利用完整的 JUnit 集成。

当我创建一个新的 JUnit 运行配置时,测试执行得很好。但是,在每次测试运行时,都会执行完整的 SBT 构建,从而将测试延迟大约 30 秒。

如果我从 JUnit 运行配置中的启动前步骤中删除 Make,则测试将直接执行而无需完整的 sbt 构建,但 IDEA 不会获取测试和应用程序代码中的任何代码更改。即使在播放文件更改时自动编译运行时,IDEA 也不会将它们用于测试。

编辑 07/09/2015

我还用SBT Action test:compile 交换了Make,这只会打开一个加载项目的SBT 控制台并在提示符下停止。它没有执行动作 test:compile,因此根本没有开始测试。

我必须在运行配置和/或项目设置中进行哪些更改才能在 IDEA 中为 Play 项目快速无缝地集成 JUnit?

【问题讨论】:

【参考方案1】:

通过issue tickets of idea-sbt-plugin挖掘,终于自己找到了答案。

将启动前步骤MakeSBT Action test:compile 交换是正确的方法。但是 SBT 插件需要默认的 sbt shellPromt >。然而,Play 项目将自己的自定义提示定义为 [projectname] $

我必须将以下行添加到 build.sbt 以使 SBT 操作生效。

    shellPrompt := (_ => "> ")

【讨论】:

您能解释一下如何创建 SBT Action 并在预启动步骤中使用它吗? 先决条件:已安装 SBT 插件。打开测试的运行/调试配置。您可能想要编辑模板,以便每个测试都使用此配置。选择“制作”,单击“启动前”部分中的“-”。单击“+”以添加新的 Before 步骤。选择 SBT。输入 'test:compile' 作为操作(在下拉值中不可用,请手动输入)

以上是关于没有完整 sbt 构建的 IDEA Play 2.4 junit 测试的主要内容,如果未能解决你的问题,请参考以下文章

未找到 SBT 导入选项:Idea Ultimate

Play Framework 作为 SBT 非根模块

IDEA中使用SBT构建SCALA项目

sbt-native-packager 插件在 Play 项目的 rpm 构建中出错

如何将 SBT 类附加到 Intellij Idea?

如何将 Play 2.2 Scala 应用程序创建为 SBT 子项目