如何使用 Eclipse 调试由 sbt 驱动的测试?
Posted
技术标签:
【中文标题】如何使用 Eclipse 调试由 sbt 驱动的测试?【英文标题】:How can I use Eclipse to debug tests driven by sbt? 【发布时间】:2013-03-08 20:03:52 【问题描述】:我有一组要调试的测试用例(逐步、读取值等)。如何设置我的 sbt
构建以便连接 Eclipse 调试器?
【问题讨论】:
【参考方案1】:我找到了一种附加 Eclipse 调试器的方法。在Build.scala
项目设置中,我添加了以下选项:
//required for the javaOptions to be passed in
fork := true
javaOptions in (Test) += "-Xdebug"
javaOptions in (Test) += "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
然后在 Eclipse 中,我可以创建一个类型为 Remote Java Application
的新 Debug configuration
(错误图标旁边的箭头)。在那里我可以选择Scala debugger (Socket Attach)
并指定端口5005
。
我现在遇到的问题是我无法设置任何断点,但这是另一个问题,可能与我使用的 Scala IDE 版本有关。
编辑
设置断点的问题(很可能)与我的 specs2 规范中的奇异结构有关。我用一个方法创建了一个小对象,以便能够设置断点
object BreakPoint
def set =
【讨论】:
如果您可以将断点问题简化为可重现的测试用例,我们很想知道:scala-ide.org/docs/community.html。 好点,一旦我有时间我会尝试做一个孤立的测试用例 并确保使用最新的 Scala IDE 版本(在撰写本文时,v3.0.0)【参考方案2】:通过远程连接器使用Scala debugger
有效。
但是如果你想避免在sbt
和Eclipse
之间来回切换,你可以使用sbteclipse在Scala IDE
中加载你的项目,然后从Scala IDE
内部运行你的specs2测试,在调试模式,使用JUnit launcher。
【讨论】:
我用的是sbteclipse,真不错! JUnit 启动器在这里不是一个好的选择,因为我使用的 Auto Examples 超过了一行。以上是关于如何使用 Eclipse 调试由 sbt 驱动的测试?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 sbt-eclipse 创建项目的 Eclipse 项目文件?
使用eclipse进行断点调试进入断点的速度很慢,可能由哪些原因造成,求大神指教