【问题标题】:Play Framework 2.1 debug subproject unit tests with EclipsePlay Framework 2.1 使用 Eclipse 调试子项目单元测试
【发布时间】:2014-03-23 10:35:08
【问题描述】:

使用 eclipse 调试器调试我的 Play webapp 没有问题,但在单元测试期间无法让调试器参与进来。我已经尝试了herehere 列出的建议,但是当我通过 Eclipse 连接调试器时,我的断点仍然被忽略。

我的 webapp 包含两个 子项目,我添加了设置:

Keys.fork in (Test) := false

到 play.Project(...).settings 部分中的所有三个 Build.scala 文件:我的两个子项目以及顶层的一个。然后我执行以下操作:

  1. 从播放控制台运行 play clean
  2. 从播放控制台运行play compile
  3. 从播放控制台,运行 play debug
  4. 从 Eclipse 运行调试配置,查看端口 9999(我用来成功调试 webapp 的配置相同)
  5. 在播放 $ 提示符下,运行 test

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

【问题讨论】:

    标签: eclipse unit-testing debugging playframework remote-debugging


    【解决方案1】:

    在顶级 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 和 proj2Dependencies 都指向相同的基本依赖项,如下所示:

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

    )

    【讨论】:

      猜你喜欢
      • 2013-03-10
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多