我尝试用intellij调试一些测试。
我已将远程调试配置为:How to make the debugging in playframework in IntelliJ Idea
中的解释可以调试控制器和东西。当我尝试调试如下的测试时: Is it possible to debug Play! tests from IntelliJ, with a moduled that is located in a sub-folder?
但我重申了下一条消息:
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
知道这里发生了什么吗?我在调试模式下运行服务器并运行播放测试,只在控制台模式下运行测试。不是服务器。
答案 0 :(得分:7)
默认情况下,SBT正在分配一个新进程来执行测试。您的IDE已连接到SBT主进程,但未连接到“分叉”进程,这就是调试不起作用的原因。
您可以通过在Build.scala文件中定义以下设置来覆盖它:
val main = play.Project(appName, appVersion, appDependencies).settings(
sbt.Keys.fork in Test := false
)
现在,主进程将用于执行测试(从播放控制台执行test
时),IDE应该能够正确调试它们。