2010-09-24 118 views

回答

21

如何右鍵點擊你的目標和「調試[你的目標]」(在你的情況下是測試目標)?

debug goal

+0

啊,沒有想到這一點。星期五下午太晚了:D謝謝。 – JavaRocky 2010-09-26 22:53:48

+12

假設你想使用斷點,這個答案是不夠的。請參閱懸停的答案。 – dgtc 2014-08-20 18:18:38

20

我執行測試有以下選項:

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666 -Xnoagent -Djava.compiler=NONE" test 

...然後連接遠程調試到Maven。

+0

你設法讓log4j/logging工作嗎?我甚至包括-Dlog4j.configuration = <到log4j.properties的路徑>,但日誌語句未被打印。 – javadba 2014-11-14 01:17:08

131

http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

在IDEA,運行在調試模式 「mvn -DforkMode=never test

更新測試:打開你的運行/調試配置,在 「亞軍」 標籤,添加-DforkMode=never

enter image description here

(由@ mikeapr4註釋:Surefire插件的新版本(2.14+)使用mvn -DforkCount=0 test

+0

這對我有效。我正在使用以下命令來調試Idea 10中的測試目標。 – 2011-11-10 09:09:00

+1

在我的多模塊項目中,這是Intellij內部爲我工作的唯一選項。 – nash 2012-03-10 21:09:36

+22

在IDEA 11中,我發現在Maven項目中,我必須右鍵單擊我想測試的模塊的測試。這創建了一個運行/調試配置。然後編輯這個新配置,點擊runner選項卡,並在VM選項中添加-DforkMode =從不。點擊確定。設置一箇中斷點,然後單擊調試圖標運行新的調試配置。上述的組合,所以謝謝你的提示。 – foolshat 2012-04-18 08:58:32

7

問題已回答。但只是分享我自己的經驗。 選定的答案沒有解決我的問題。 我的代碼有多個模塊。

foolshat的回覆的確給我的問題帶來了寶貴的見解。

我有兩個解決方案, 1.使用你的想法,加入了VM選項-DforkMode=never;必須以調試模式運行它。 2.設置遠程調試,指定套接字,在這種情況下forkMode不是必需的。

這只是我所經歷的一個總結。

+0

非常感謝! – tsykora 2013-05-31 13:32:46

8

-DforkMode=never不再有效,它現在在SureFire中已被棄用。

使用-DforkCount=0而不是使用surefire插件2.14+。

+2

這可行,但這個答案肯定是令人困惑。 – 2014-03-17 22:48:10

+0

Surefire文檔聲稱使用'forkCount'和'reuseForks'代替,所以我認爲上面的意思是說「使用'-DforkCount = 0'」。我嘗試過'-DforkCount = 0'(如果沒有分叉,''''''''''''''''''''''''''但是我的斷點從未被觸發過。它確實以'-DforkMode = never'行程(Maven 3.2.1,IDEA 13.1.2)。 – mmindenhall 2014-05-08 05:23:28