使用intellij和maven pom文件,我如何調試在maven測試目標內運行的測試?在IntelliJ中,我如何調試Maven測試目標?
當我直接在代碼中運行它們時,它會抱怨一些關於配置文件缺失的內容,我在intellij的Maven項目中勾選了這些內容。
使用intellij和maven pom文件,我如何調試在maven測試目標內運行的測試?在IntelliJ中,我如何調試Maven測試目標?
當我直接在代碼中運行它們時,它會抱怨一些關於配置文件缺失的內容,我在intellij的Maven項目中勾選了這些內容。
如何右鍵點擊你的目標和「調試[你的目標]」(在你的情況下是測試目標)?
我執行測試有以下選項:
mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666 -Xnoagent -Djava.compiler=NONE" test
...然後連接遠程調試到Maven。
你設法讓log4j/logging工作嗎?我甚至包括-Dlog4j.configuration = <到log4j.properties的路徑>,但日誌語句未被打印。 – javadba 2014-11-14 01:17:08
http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html
在IDEA,運行在調試模式 「mvn -DforkMode=never test
」
更新測試:打開你的運行/調試配置,在 「亞軍」 標籤,添加-DforkMode=never
(由@ mikeapr4註釋:Surefire插件的新版本(2.14+)使用mvn -DforkCount=0 test
)
這對我有效。我正在使用以下命令來調試Idea 10中的測試目標。 – 2011-11-10 09:09:00
在我的多模塊項目中,這是Intellij內部爲我工作的唯一選項。 – nash 2012-03-10 21:09:36
在IDEA 11中,我發現在Maven項目中,我必須右鍵單擊我想測試的模塊的測試。這創建了一個運行/調試配置。然後編輯這個新配置,點擊runner選項卡,並在VM選項中添加-DforkMode =從不。點擊確定。設置一箇中斷點,然後單擊調試圖標運行新的調試配置。上述的組合,所以謝謝你的提示。 – foolshat 2012-04-18 08:58:32
問題已回答。但只是分享我自己的經驗。 選定的答案沒有解決我的問題。 我的代碼有多個模塊。
foolshat的回覆的確給我的問題帶來了寶貴的見解。
我有兩個解決方案, 1.使用你的想法,加入了VM選項-DforkMode=never
;必須以調試模式運行它。 2.設置遠程調試,指定套接字,在這種情況下forkMode不是必需的。
這只是我所經歷的一個總結。
非常感謝! – tsykora 2013-05-31 13:32:46
-DforkMode=never
不再有效,它現在在SureFire中已被棄用。
使用-DforkCount=0
而不是使用surefire插件2.14+。
這可行,但這個答案肯定是令人困惑。 – 2014-03-17 22:48:10
Surefire文檔聲稱使用'forkCount'和'reuseForks'代替,所以我認爲上面的意思是說「使用'-DforkCount = 0'」。我嘗試過'-DforkCount = 0'(如果沒有分叉,''''''''''''''''''''''''''但是我的斷點從未被觸發過。它確實以'-DforkMode = never'行程(Maven 3.2.1,IDEA 13.1.2)。 – mmindenhall 2014-05-08 05:23:28
啊,沒有想到這一點。星期五下午太晚了:D謝謝。 – JavaRocky 2010-09-26 22:53:48
假設你想使用斷點,這個答案是不夠的。請參閱懸停的答案。 – dgtc 2014-08-20 18:18:38