我正在尝试使用sbt运行测试时调试我的Scala应用程序。我已将以下行添加到build.sbt
:
javaOptions in test ++= Seq(
"-Xdebug",
"-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
)
我还在Eclipse中设置了断点,并为该端口8001配置了一个远程调试器。
从命令行启动测试时,远程调试器正确启动:
Listening for transport dt_socket at address: 8001
但是,测试的执行没有像预期的那样暂停,因此我无法连接远程调试器。相反,测试只是运行。
任何想法我可能在这里做错了吗?如何在Eclipse中使用断点调试sbt测试?
答案 0 :(得分:1)
以下对我有用(未在测试中测试,但可能以相同的方式工作)。在这个例子中,我使用了由udash-generator(0.3.1)生成的项目。
$ sbt
> set fork := true
> set javaOptions ++= Seq("-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001")
> run
我使用了eclipse(Neon with ScalaIDE 4.4.1,Scala 2.11)(sbt eclipse with-source=true
)并在com.example.rpc.ExposedRpcInterfaces.hello(name: String)
方法中添加了一个断点。
启动启动配置(eclipse调试器)并使用http://localhost:8080/#/rpc
打开浏览器,开始键入文本字段,eclipse在断点处停止。
我不确定您的不同之处,因为您似乎也在为测试分配新的JVM。如果您提供了正在使用的测试框架的更多详细信息,我可以尝试您的设置。