如何在intellij中运行Play框架应用程序的单元测试

时间:2018-12-25 06:35:38

标签: java unit-testing intellij-idea playframework

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

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

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

enter image description here

如果我运行SBT测试任务,则测试正在运行并通过。

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

我正在使用intellij终极版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

您的环境有什么不同吗?

我的过程中有什么问题吗?

2 个答案:

答案 0 :(得分:1)

我使用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,了解可能的原因。

答案 1 :(得分:0)

我使用Scala插件和Play Framework。我可以通过3种方式运行测试:

  • 从IDE进行简单的运行1测试(但我不能以此方式运行软件包中的所有测试)
  • 从sbt运行测试
  • 使用此配置运行测试(允许覆盖测试)

对不起,我的英语。

enter image description here