如何使用Play调试测试!2.0

Ped*_*olo 9 eclipse junit jpda playframework playframework-2.0

我正在使用Play 2设置一个项目,我已经能够使用eclipse远程调试来调试webapp.虽然,我也想在我的测试中使用断点.有谁知道设置单元如何测试远程调试?

Igo*_*nov 12

这是因为Play(SBT)分支JVM进行测试,没有远程调试所需的选项.您至少有两个选项:禁用新JVM的fork,将其他选项传递给用于测试的JVM.

要禁用fork,请修改Build.scala,添加fork in (Test) := false,请参阅下面的完整Build.scala示例:

import sbt._
import play.Project._

object ApplicationBuild extends Build {

  val appName         = "so1"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    // Add your project dependencies here,
    javaCore,
    javaJdbc,
    javaEbean
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here
    Keys.fork in (Test) := false
  )
}
Run Code Online (Sandbox Code Playgroud)

要传递其他选项,请添加以下代码:

  val main = play.Project(appName, appVersion, appDependencies).settings(
    Keys.javaOptions in (Test) += 
    "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998"
  )
Run Code Online (Sandbox Code Playgroud)

您需要将IDE配置为使用端口9998连接到测试.此外,每次运行测试时都需要重新连接调试器,这可能很不方便.