java - 如何在 intellij 中为播放框架应用程序运行单元测试
问题描述
我尝试在 intellij 中的play framework java starter example上运行单元测试,但它似乎不起作用。
我下载了项目并通过 SBT 导入将其导入 intellij。
当我尝试从 intellij 运行测试时,我得到“找不到类:”UnitTest“空测试套件”
如果我运行 SBT 测试任务,则测试正在运行并通过。
当我在运行 SBT 测试任务后开始从 intellij 运行测试时,测试运行并通过。就像intellij没有编译项目
我正在使用 intellij 终极版 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 framework 2.x 的 sbt 编译
您可以尝试在设置中激活 Play2 框架...
警告:这个设置对我不起作用,因为它不是由 IntelliJ 保存的。我还没弄清楚为什么。
编辑请参阅此链接以了解可能的原因。
推荐阅读
- visual-studio-code - 如何在 VSCode 等 monaco-editor 中突出显示合并冲突块?
- javascript - 新手在计时器项目中需要帮助
- php - 将 jQuery DataTable 的 DataSource 设置为 PHP JSON 编码数组
- python - 使 Python 文件中的 HTTP 服务器继承与命令行版本相同的参数
- sql - 如何找到行之间发生的变化?
- css - 在 CSS3 响应式字体标题上解析来自 W3C 验证器的错误
- c# - VS 在启动调试器时卡在“正在加载”
- algorithm - 最小硬币找零问题 - 最小公倍数
- reactjs - redux-thunk 重复 redux-api-middleware 操作,直到超时或设置状态变量
- scala - 如何在Scala中访问嵌套映射中的键值