2014-03-19 156 views
17

我在Jenkins上爲Maven項目建立了一個構建,並且我想在不運行任何測試的情況下構建它。我試着進入目標領域的「乾淨安裝-DskipTests」,像這樣:在Jenkins中跳過測試

enter image description here

但它不工作。我做錯了什麼?

注意:我想跳過測試,而不碰pom。我有一個單獨的版本,可以運行測試。

+0

你指定的maven目標很好......只是不指定「測試」目標,你應該是金手指。 – sircapsalot

+0

@sircapsalot我很困惑......我如何在上面的例子中指定'test'目標?還是你說我在別的地方指定它? –

+0

我只是說,只要你*不把*測試'目標,它不應該運行測試。如果你只是指定'乾淨安裝'它正在運行測試?如果是這樣,你可以發佈pom嗎? – sircapsalot

回答

43

問題是我省略了=true。我能夠進入,但不運行測試,以建立:

clean install -DskipTests=true 
+2

你能否提供你的maven-surefire-plugin和jenkins的版本?對於我最新的LTS版本以及surefire 2.17,「-DskipTests」工作得很好。找出發生這種情況的原因很有意思。 – Behe

2

使用「目標和選項」值「全新安裝-DskipTests =真」。

它就像一個魅力。我使用這個選項節省了數小時的時間。 :-)

1

我在「調用頂級Maven目標」 - >「JVM選項」中使用選項「-DskipTests = true」,它工作正常。

1

只是延長了答案,Maven有跳繩測試2種選擇:

-DskipTests=true - 被提到的一個。有了這個參數,maven完全忽略了測試。

-Dmaven.test.skip=true - 使用此選項,maven編譯測試,但不啓動它們。

因此,您可能希望使用第二個選項代替快速代碼編譯驗證。 E.G .:如果你開發一些圖書館或模塊供其他人使用,你必須確保你沒有制定與客戶的合同。測試編譯可以幫助你做到這一點。

根據您的需要使用這些參數中的任何一個。

+0

謝謝@iMysak,這實際上是我以前不知道的非常有用的信息。 :) –