我有一個maven多模塊項目和一個模塊im使用集成測試對我的本地數據庫。我們使用Jenkins,當然,由於所需的數據庫,我不希望IT在Jenkins上運行。我發現解決方案使用maven-failsafe和選項「-DskipITs」。像魅力一樣工作,我可以承諾IT,不必擔心詹金斯抱怨執行IT。但後來我創造了我所有的測試套件在一個運行它們:Jenkins運行故障安全集成測試儘管-DskipITs
package mypackage;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
AccountManagerImportServiceIT.class,
AccountManagerToClientImportServiceIT.class,
ClientImportServiceIT.class,
ContactPersonImportServiceIT.class,
InvoiceImportServiceIT.class,
MeteringPointImportServiceIT.class,
MeteringPointToRoleImportServiceIT.class,
RoleImportServiceIT.class,
WhitelistImportServiceIT.class
})
public class TestSuiteIT {
}
現在看來,詹金斯忽略故障安全的TestSuite中並試圖執行它,當然這使得構建不穩定。我不知道該怎麼做來告訴詹金斯也忽略TestSuite!奇怪的是:如果我在本地系統上執行「mvn clean install -DskipITs」(與Jenkins執行相同的命令),它就可以工作。但詹金斯總是試圖執行TestSuite。 :-(
你使用surefire還是failafe插件? – ANIL
故障安全,就像我在我的問題中寫的那樣。它可以從集成測試中「分離」單元測試。 – Vortilion
在你的'pom.xml'有你所做的任何配置,你的'失敗安全-plugin'跳過測試事情是這樣的:? ' org.apache.maven.plugins Maven的故障安全-plugin 2.20 <配置> 真正 配置> ' –
ANIL