我正在使用 jenkins,并且我有一个 staging > qa > uat > master 环境集。
我不希望 jenkins 在 staging 和 qa 环境中运行任何集成测试,仅适用于 uat 和掌握。
可以这样做吗?如果是这样,怎么办?我的意思是,我应该将单元测试和集成测试分开在不同的包中吗?今天我有:
src/main/java
src/test/java
最佳答案
定义接口(interface)IntegrationTest
public interface IntegrationTest {}
并使用 Junit4 中的注释 @Category
将您的测试分类为集成测试。
@Category(IntegrationTest.class)
public class YourTest
因此,请使用 maven surefire
和 failsafe
插件来创建睾丸组。
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>you.package.IntegrationTest</excludedGroups>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<groups>you.package.IntegrationTest</groups>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
集成测试将自动从默认执行中排除,即 mvn clean 包。但是,如果您运行mvnintegration-test
,所有集成测试都将运行。
关于java - 如何让jenkins仅在部署到UAT时运行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60218348/