java - 如何在 intellij 中为 play 框架应用程序运行单元测试

标签 java unit-testing intellij-idea playframework

我尝试在 play framework java starter example 上运行单元测试在intellij内,但它似乎不起作用。

我下载了该项目并通过 SBT 导入将其导入到 intellij 中。

当我尝试从 intellij 运行测试时,我得到“找不到类:“UnitTest”空测试套件”

enter image description here

如果我运行 SBT 测试任务,测试就会运行并通过。

当我在运行 SBT 测试任务后从 intellij 运行测试时,测试运行并通过。 就像intellij没有编译项目

我正在使用 intellij Ultimate Edition 版本 2018.2 并拥有 scala 插件(v 2018.2.11)

我怎样才能做到这一点?

编辑(回应@hce)

我将intellij升级到最新版本:2018.3.2(找不到2018.3.5)但仍然遇到类似的问题。

我从新下载的入门项目开始。 导入 sbt 项目:

enter image description here

enter image description here

然后尝试编译并出现错误:

enter image description here

我通过配置intellij使用play2编译器成功解决了编译问题(“在这个项目中使用play2编译器”)

enter image description here

然后我尝试运行测试,但 intellij 提示它找不到该类

enter image description here

这是由 intellij 创建的运行配置。类名(UnitTest)被标记为红色...

enter image description here

您的环境有什么不同吗?

我的流程有什么问题吗?

最佳答案

我使用IntelliJ 2018.3.5和Scala插件对其进行了测试。效果很好。 所以原因似乎是在你的项目的配置中。 如果您可以提供运行/调试配置和设置,将会很有帮助。 原因有很多。 您可以尝试以下方法...

  • 确保您使用 java 1.8 作为项目 jdk。
  • 使用 sbt 1.2.1
  • 检查您的运行/调试配置。
  • 文件 -> 使缓存无效/重新启动...
  • 构建 --> 重建项目
  • 运行 --> 编辑配置/删除 Junit/应用并重新启动测试。自动创建新的 Junit 配置

编辑: 经过@NirBrachel的评论,解决方案是使用sbt-shell来编译项目。 (我建议清理、编译和测试)。

sbt-shell clean, compile, test

您可以在导入过程中自动执行此操作:

![activate sbt-shell for import and build

为什么? 信息:默认禁用 play 框架 2.x 的 sbt 编译

您可以尝试在“设置”中激活Play2框架...

enter image description here

警告:此设置对我不起作用,因为它不是由 IntelliJ 保存的。 我还没找到原因。

编辑请参阅 this link可能的原因。

关于java - 如何在 intellij 中为 play 框架应用程序运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919939/

相关文章:

java - apache common vfs和mercurial的集成

c++ - 如何在 boost 单元测试中比较 char* 和 string?

python - 从命令提示符运行单元测试

java - 查看 IDEA 13 Gradle 依赖

java - 从另一个线程内调用 TimerTask 是线程安全的

java - 修复无法解决所有依赖关系

java - JOSSO 本身是否提供任何用户管理?

unit-testing - 设计一个健壮的单元测试——以几种不同的方式测试相同的逻辑?

scala - 如何在任何代码点查看所有可用的隐式及其类型?

grails - 如何使用 Sonarlint for IntelliJ 分析 Groovy 代码?