我已經成功運行Android Studio中的調試器下Robolectric單元測試,因爲版本0.6.1無法與調試器Android Studio中運行Robolectric單元測試
現在我不能和得到以下錯誤
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750]
Could not write standard input into: Gradle Test Executor 1.
java.io.IOException: Broken pipe
我一直設置使用in-process build
標誌在編譯設置中未選中,雖然我目前使用AS 0.8-14,但我已經回去嘗試了0.8-11,0.8-9和0.6-1,但都沒有在工作,在忙。我正在使用android build工具19.1.0版本(並且已經有一段時間了,它可以和它們一起工作)。
它可能是Mac OS X下的一些本地安全設置?任何援助將受到感謝。
**更新** 我發現問題是由運行單元測試任務之前運行額外的JavaExec任務引起的。看起來,gradle正在爲第一個任務運行JVM並將調試參數傳遞給它,例如-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=49807
任務完成並且JVM退出。然後,Gradle運行實際的單元測試,並期望新的JVM在調試器的同一端口上偵聽以進行連接 - 不會發生連接故障。
如何防止以前的任務(一個ormlite數據庫編譯任務)在調試器下運行或強制gradle識別單元測試任務將使用新的JVM運行,因此將單元測試的jvmArgs更改爲反映新的調試端口?