使用Eclipse进行Framework 2.1调试子项目单元测试



使用eclipse调试器调试我的Play Web应用程序没有问题,但在单元测试期间未能成功启用调试器。我已经尝试了这里和这里列出的建议,但当我通过Eclipse连接调试器时,我的断点仍然被忽略。

我的网络应用程序由两个子项目组成,我添加了设置:

Keys.fork in (Test) := false

播放中的所有三个Build.scala文件。项目(…).设置部分:我的两个子项目以及一个顶级项目。然后我做以下操作:

  1. 从播放控制台运行play-clean
  2. 从播放控制台运行播放编译
  3. 从播放控制台运行播放调试
  4. 在Eclipse中,运行调试配置,查看9999端口(与我成功调试webapp时使用的端口相同)
  5. 在play$提示下,运行测试

调试测试子项目的该部分时,或者如果使用fakeApplication(我使用内存中的数据库进行模型测试),是否需要采取其他步骤?

在顶级build.scala文件中,有三行看起来像这样:

val proj1 = play.Project(appName + "-Proj1", appVersion, proj1Dependencies, path = file("subprojects/Proj1") )
val proj2 = play.Project(appName + "-Proj2", appVersion, proj2Dependencies, path = file("subprojects/Proj2") )
val main = play.Project(appName,      appVersion, mainDependencies).settings(
// Add your own project settings here)
).dependsOn( proj1, proj2 ).aggregate( proj1, proj2 )

我想调试proj2中的单元测试,所以我需要在那里添加新的设置,如下所示:

val proj2 = play.Project(appName + "-Proj2", appVersion, proj2Dependencies, path = file("subprojects/Proj2") ).settings(
Keys.fork in (Test) := false

)

注意:在本例中,所有三个依赖变量:mainDependencies、proj1Dependencies和proj2Dependencie都指向相同的基本依赖项,如下所示:

val baseDependencies = Seq(
javaCore,
javaJdbc,
javaEbean,
"xom" % "xom" % "1.2.5",
"net.sf.json-lib" % "json-lib" % "2.4" classifier "jdk15"

)

最新更新