如何 运行 对 intellij 中的 play 框架应用程序进行单元测试
how to run unit tests for a play framework application within intellij
我在 intellij 的 play framework java starter example 上尝试了 运行ning 单元测试,但它似乎不起作用。
我下载了项目并通过 SBT 导入将它导入到 intellij 中。
当我尝试 运行ning 来自 intellij 的测试时,我得到了 "Class not found: "UnitTest"Empty test suite"
如果我 运行 SBT 测试任务,测试 运行 正在通过。
当我在 运行 执行 SBT 测试任务后 运行 执行来自 intellij 的测试时,测试 运行 并通过了。
好像intellij没有编译项目
我正在使用 intellij 终极版 2018.2 版并且有 scala 插件 (v 2018.2.11)
我怎样才能完成这项工作?
编辑(回应@hce)
我升级了intellij到最新版本:2018.3.2(找不到2018.3.5),但还是遇到类似的问题
我从一个新下载的入门项目开始。
导入 sbt 项目:
然后尝试编译,报错:
我通过配置intellij使用play2编译器解决了编译问题("Use play2 compiler for this project")
然后我尝试了 运行ning 测试,但 intellij 抱怨它找不到 class
这是由 intellij 创建的 运行 配置。 class 名称 (UnitTest) 标记为红色...
在您的环境中有什么不同吗?
我的过程有什么问题吗?
我使用 IntelliJ 2018.3.5 和 Scala 插件对其进行了测试。它运作良好。
所以原因似乎在于您的项目配置。
如果您能提供 run/debug 配置和设置,将会很有帮助。
原因有很多。
您可以尝试以下方法...
- 确保使用 java 1.8 作为项目 jdk。
- 使用 sbt 1.2.1
- 检查您的 run/debug 配置。
- 文件 -> 无效 Caches/Restart...
- 构建 --> 重建项目
- 运行 --> 编辑配置/删除 Junit/应用并重新启动测试。自动创建新的 Junit 配置
编辑:
在@NirBrachel 的评论之后,解决方案是使用 sbt-shell 来编译项目。 (我建议清理、编译和测试)。
您可以在导入期间自动执行此操作:
为什么?
信息:播放框架的 sbt 编译 2.x 默认禁用
您可以尝试在设置中激活Play2框架...
警告:这个设置对我不起作用,因为它没有被 IntelliJ 保存。
我还没有找到原因。
编辑 参见 this link 了解可能的原因。
我使用 Scala 插件和 Play Framework。我可以 运行 以 3 种方式进行测试:
- 简单 运行 来自 IDE 的 1 个测试(但我不能 运行 通过这种方式包中的所有测试)
- 运行 来自 sbt
的测试
- 运行 使用此配置进行测试(它允许 运行 进行覆盖测试):
对不起我的英语。
我在 intellij 的 play framework java starter example 上尝试了 运行ning 单元测试,但它似乎不起作用。
我下载了项目并通过 SBT 导入将它导入到 intellij 中。
当我尝试 运行ning 来自 intellij 的测试时,我得到了 "Class not found: "UnitTest"Empty test suite"
如果我 运行 SBT 测试任务,测试 运行 正在通过。
当我在 运行 执行 SBT 测试任务后 运行 执行来自 intellij 的测试时,测试 运行 并通过了。 好像intellij没有编译项目
我正在使用 intellij 终极版 2018.2 版并且有 scala 插件 (v 2018.2.11)
我怎样才能完成这项工作?
编辑(回应@hce)
我升级了intellij到最新版本:2018.3.2(找不到2018.3.5),但还是遇到类似的问题
我从一个新下载的入门项目开始。 导入 sbt 项目:
然后尝试编译,报错:
我通过配置intellij使用play2编译器解决了编译问题("Use play2 compiler for this project")
然后我尝试了 运行ning 测试,但 intellij 抱怨它找不到 class
这是由 intellij 创建的 运行 配置。 class 名称 (UnitTest) 标记为红色...
在您的环境中有什么不同吗?
我的过程有什么问题吗?
我使用 IntelliJ 2018.3.5 和 Scala 插件对其进行了测试。它运作良好。 所以原因似乎在于您的项目配置。 如果您能提供 run/debug 配置和设置,将会很有帮助。 原因有很多。 您可以尝试以下方法...
- 确保使用 java 1.8 作为项目 jdk。
- 使用 sbt 1.2.1
- 检查您的 run/debug 配置。
- 文件 -> 无效 Caches/Restart...
- 构建 --> 重建项目
- 运行 --> 编辑配置/删除 Junit/应用并重新启动测试。自动创建新的 Junit 配置
编辑: 在@NirBrachel 的评论之后,解决方案是使用 sbt-shell 来编译项目。 (我建议清理、编译和测试)。
您可以在导入期间自动执行此操作:
为什么?
信息:播放框架的 sbt 编译 2.x 默认禁用
您可以尝试在设置中激活Play2框架...
警告:这个设置对我不起作用,因为它没有被 IntelliJ 保存。 我还没有找到原因。
编辑 参见 this link 了解可能的原因。
我使用 Scala 插件和 Play Framework。我可以 运行 以 3 种方式进行测试:
- 简单 运行 来自 IDE 的 1 个测试(但我不能 运行 通过这种方式包中的所有测试)
- 运行 来自 sbt 的测试
- 运行 使用此配置进行测试(它允许 运行 进行覆盖测试):
对不起我的英语。