5

我尝试用 intellij 调试一些测试。

我已经按照以下说明配置了远程调试:如何在 IntelliJ Idea 的 playframework 中进行调试

并且可以调试控制器和东西。当我尝试调试测试时,例如解释: Is it possible to debug Play!来自 IntelliJ 的测试,模块位于子文件夹中?

但我收到了下一条信息:

Action not found

For request 'GET /@tests'
These routes have been tried, in this order:
1GET/controllers.Application.index
2GET/assets/$file<.+>controllers.Assets.at(path:String = "/public", file:String)
3GET/api/crawl/task/begincontrollers.services.crawler.CrawlingService.begin
4GET/api/crawl/task/silk

知道这里发生了什么吗?我在调试模式下运行服务器并运行播放测试,只在控制台模式下运行测试。不作为服务器。

4

1 回答 1

7

默认情况下,SBT 会派生一个新进程来执行测试。您的 IDE 连接到 SBT 主进程,但没有连接到“分叉”主进程,这就是调试不起作用的原因。

您可以通过在 Build.scala 文件中定义以下设置来覆盖它:

val main = play.Project(appName, appVersion, appDependencies).settings(
  sbt.Keys.fork in Test := false
)

现在,主进程将用于执行测试(test从播放控制台执行时),您的 IDE 应该能够正确调试它们。

于 2013-05-24T19:39:44.113 回答