我有一个maven多模块项目和一个模块我对本地数据库使用集成测试。我们使用 Jenkins ,当然,由于所需的数据库,我不希望IT在Jenkins上运行。我找到了使用 maven-failsafe 和选项" -DskipITs "的解决方案。工作就像一个魅力,我可以提交IT,而不必担心詹金斯抱怨执行IT。但后来我为我的所有IT人员创建了一个测试套件,以便将它们全部运行在一起:
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 {
}
现在似乎Jenkins忽略了TestSuite的故障保护并尝试执行它,这当然会使构建不稳定。我不知道该怎么做才能告诉Jenkins也忽略了TestSuite!奇怪的是:如果我做了一个" mvn clean install -DskipITs" (在本地系统上执行相同的命令Jenkins),它可以工作。但Jenkins总是试图执行TestSuite。 : - (
答案 0 :(得分:0)
您可以将<skipTests>false</skipTests>
添加到properties
的{{1}}部分。
然后在pom.xml
部分找到plugins
并使用maven-failsafe-plugin
配置。
skipTests
默认情况下,将启用测试。如果您想跳过teststhen使用<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>x.xx</version>
<configuration>
<skipITs>${skipTests}</skipITs>
</configuration>
</plugin>