當我按照通過的IntelliJ IDEA此鏈接調試行家測試斷開:http://www.grygoriy.com/2012/01/how-to-debug-tests-maven-test-via.html的IntelliJ-想法調試調試行家測試
當到達第三步,並開始調試,它的連接,但很快斷開連接,在不停止斷點。我在的IntelliJ:
連接到目標VM,地址: '本地主機:5005',運輸: '插座'
從目標VM斷開,地址: '本地主機:5005',運輸:「插座'
任何想法?
當我按照通過的IntelliJ IDEA此鏈接調試行家測試斷開:http://www.grygoriy.com/2012/01/how-to-debug-tests-maven-test-via.html的IntelliJ-想法調試調試行家測試
當到達第三步,並開始調試,它的連接,但很快斷開連接,在不停止斷點。我在的IntelliJ:
連接到目標VM,地址: '本地主機:5005',運輸: '插座'
從目標VM斷開,地址: '本地主機:5005',運輸:「插座'
任何想法?
阻止Idea調試Maven的目標的唯一方法是forking。
插件,例如萬無一失和彈簧引導使用分叉默認。
因此,當您從IDEA開始調試maven目標時,它會連接到maven,但是您真正想要調試的進程與maven進程不同,所以它不會連接。
爲了防止在保命插件這樣的行爲,你應該看看這篇文章:如果您使用舊的萬無一失
:
<configuration>
<forkMode>never</forkMode>
</configuration>
在新神火:
<configuration>
<forkCount>0</forkCount>
</configuration>
http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html
總之
但它不是很清楚:
所以,如果你想請CI,IDEA,合作開發者和你自己,你應該提供更聰明的方式來讓你調試你的構建。
我的建議:
默認行爲是分叉因爲構建過程是很經常的事情,同時調試它 - 是例外
調試器的行爲是分離簡單易用的「開機「
我的變種:
<properties>
<test.forkCount>1</test.forkCount>
</properties>
<profiles>
<profile>
<id>debug</id>
<properties>
<test.forkCount>0</test.forkCount>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<!-- surefire -->
<configuration>
<forkCount>${test.forkCount}</forkCount>
</configuration>
</plugin>
</plugins>
</build>
所以,在知道你只是需要建立與目標測試命名的運行配置,包括調試到文件列表中。
但在其他情況下,maven的行爲仍然默認。
附加利潤在哪裏 - 您可以在單個配置文件中封裝整個調試行爲。
舉例來說,在我的實際項目調試簡介:
所以,如果我用mvn <any> -P debug
我敢肯定,我的環境和過程真的調試
但是,如果我在CI上運行mvn deploy
- 我將獲得完整的堆棧構建過程。
您的測試是否成功啓動?如果它沒有達到任何斷點,那可能是因爲你的代碼沒有運行。 –
@Guillaume Darmont我用「mvn test -Dmaven.surefire.debug」運行代碼,當到達測試時,我在命令行中輸入: -------------------- ----------------------------------- 測試 ------------ ------------------------------------------- 在地址收聽運輸dt_socket :5005 因此,我開始與我的想法調試,它很快斷開連接和命令行仍然在「偵聽傳輸dt_socket在地址:5005」 –
我有同樣的問題。你有沒有設法解決它? –