我尝试在 play framework java starter example 上运行单元测试在intellij内,但它似乎不起作用。
我下载了该项目并通过 SBT 导入将其导入到 intellij 中。
当我尝试从 intellij 运行测试时,我得到“找不到类:“UnitTest”空测试套件”
如果我运行 SBT 测试任务,测试就会运行并通过。
当我在运行 SBT 测试任务后从 intellij 运行测试时,测试运行并通过。 就像intellij没有编译项目
我正在使用 intellij Ultimate Edition 版本 2018.2 并拥有 scala 插件(v 2018.2.11)
我怎样才能做到这一点?
编辑(回应@hce)
我将intellij升级到最新版本:2018.3.2(找不到2018.3.5)但仍然遇到类似的问题。
我从新下载的入门项目开始。 导入 sbt 项目:
然后尝试编译并出现错误:
我通过配置intellij使用play2编译器成功解决了编译问题(“在这个项目中使用play2编译器”)
然后我尝试运行测试,但 intellij 提示它找不到该类
这是由 intellij 创建的运行配置。类名(UnitTest)被标记为红色...
您的环境有什么不同吗?
我的流程有什么问题吗?
最佳答案
我使用IntelliJ 2018.3.5和Scala插件对其进行了测试。效果很好。 所以原因似乎是在你的项目的配置中。 如果您可以提供运行/调试配置和设置,将会很有帮助。 原因有很多。 您可以尝试以下方法...
- 确保您使用 java 1.8 作为项目 jdk。
- 使用 sbt 1.2.1
- 检查您的运行/调试配置。
- 文件 -> 使缓存无效/重新启动...
- 构建 --> 重建项目
- 运行 --> 编辑配置/删除 Junit/应用并重新启动测试。自动创建新的 Junit 配置
编辑: 经过@NirBrachel的评论,解决方案是使用sbt-shell来编译项目。 (我建议清理、编译和测试)。
您可以在导入过程中自动执行此操作:
为什么?
信息:默认禁用 play 框架 2.x 的 sbt 编译
您可以尝试在“设置”中激活Play2框架...
警告:此设置对我不起作用,因为它不是由 IntelliJ 保存的。 我还没找到原因。
编辑请参阅 this link可能的原因。
关于java - 如何在 intellij 中为 play 框架应用程序运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53919939/