2014-08-29 78 views
2

我通過JVM調試標誌到SBT上開始如何遠程調試測試?

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9003 

,看到Listening for transport dt_socket at address: 9003上啓動。

我在IntelliJ IDEA中使用遠程調試配置,它總是報告它已連接 - Connected to the target VM, address: 'localhost:9003', transport: 'socket'

我可以通過IntelliJ調試主要的源代碼,但我無法成功地調試我的ScalaTest單元測試。爲什麼?

+0

這些測試是否可能在'fork:= true'模式下執行?做'show test:fork'並將輸出附加到問題中。請參閱http://www.scala-sbt.org/0.13/docs/Forking.html。 – 2014-08-29 15:34:05

+1

顯示測試:叉 [信息]虛假 – Barry 2014-08-29 18:09:10

+0

我仍然沒有得到這個功能,但我能夠在intellij完成這一切。我在裏面運行了SBT控制檯,然後連接了調試器,然後運行我的測試。令我困惑的是,在上述設置中,我可以將遠程調試器附加到非測試代碼。 – Barry 2014-08-30 17:16:39

回答

1

的解決方案是使用這些設置容易:

fork in Test := true 
javaOptions in Test := Seq("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=9003 
") 

要注意的是在JVM被暫停,直到我接一個調試器,使我們有足夠的時間來連接調試器。 連接前必須設置斷點。