scala - SBT 远程调试在 intellij 中有效,但在执行测试时无效

标签 scala debugging intellij-idea playframework sbt

我在终端 sbt -jvm-debug 9999 中执行以下命令,并在 Intellij 15.0.4-1 中使用默认值启动远程调试配置。接下来我执行 sbt 任务 run 并且断点按预期工作。当我执行 test 任务时,尽管执行了相同的代码,但调试将不再起作用。

play-scala 激活器种子与 Play Framework 2.4 结合使用。测试是用 spec2 编写的。 有谁知道我可能做错了什么?

这是我的代码:

类 DebugTest.scala

object DebugTest {
  def helloWorld(): Unit ={
    println("Oh my")
  }
}

类 ApplicationSpec.scala

import org.specs2.mutable._

import play.api.test._
import play.api.test.Helpers._

class ApplicationSpec extends Specification {

  "Application" should {
    "just print oh my in console" in new WithApplication{
      DebugTest.helloWorld()
    }
  }
}

文件构建.sbt

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.7"

libraryDependencies ++= Seq( jdbc,
  ws,
  specs2 % Test,
  "org.webjars.bower" % "adminlte" % "2.3.3",
  "org.pac4j" % "play-pac4j" % "2.2.0-SNAPSHOT",
  "org.pac4j" % "pac4j-http" % "1.9.0-SNAPSHOT",
  "com.typesafe.play" % "play-cache_2.11" % "2.4.6"
)

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
resolvers += "Sonatype snapshots repository" at "https://oss.sonatype.org/content/repositories/snapshots/"

routesGenerator := InjectedRoutesGenerator

fork in run := true
fork in test := false

文件测试.sbt

fork in test := false

最佳答案

Play sbt 插件定义了以下设置:

fork in Test := true

因此,当您启动测试时,会启动一个不同的 jvm(无需远程调试)。

你只需要在你的 build.sbt 中添加:

fork in Test := false 

您甚至可以创建一个仅包含该行的 test.sbt 文件,并在您的源代码管理中忽略它。

这应该只在调试期间使用。之后,请回到默认行为;或者在同一个 sbt session 中多次启动测试时,您可能会得到意想不到的结果。

关于scala - SBT 远程调试在 intellij 中有效,但在执行测试时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141853/

相关文章:

java - 监视线程状态的规范方法

generics - 如何在scala中获取泛型参数

android - 颠覆不起作用?

java - 快速*复制* Activity IntelliJ 项目的 git url

Scala Cats FreeMonad - 为什么我的解释器中需要 asInstanceOf[Id[A]]?

debugging - Firebug 和 FirePHP 仅适用于选定的域?

c# - 在 ASP.NET MVC 中跟踪 LINQ TO SQL 生成的查询

linux - 我如何找出本地套接字另一端的程序?

java - IntelliJ 未检测到同一 Hybris 模块中的 java 类

scala - 在 HashSet 中使用替代比较