我正在使用Play 2设置项目,并且已经可以使用Eclipse远程调试来调试Webapp。虽然,我也想在测试中使用断点。有谁知道设置单元测试的远程调试方式?
最佳答案
之所以发生这种情况是因为Play(SBT) fork 了单独的JVM进行测试,而没有远程调试所需的选项。您至少有两个选项:禁用新JVM的派生,将其他选项传递给用于测试的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
)
}
要传递其他选项,请添加您可以使用以下代码:
val main = play.Project(appName, appVersion, appDependencies).settings(
Keys.javaOptions in (Test) +=
"-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998"
)
您将需要配置IDE以使用端口9998附加到测试。
另外,每次运行测试时,您都需要重新连接调试器,这可能会带来不便。
关于eclipse - 如何使用Play调试测试! 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201034/