我在用Jenkins,我有一个 staging > qa > uat > master environment set. 我不希望jenkins在staging和qa环境中运行任何集成测试,只针对uat和master。有可能吗?如果是,怎么做?我是说,我应该在不同的包中分离单元测试和集成测试吗?今天我有:
staging > qa > uat > master environment set.
src/main/java src/test/java
yrdbyhpb1#
定义接口集成测试
public interface IntegrationTest {}
并使用注解 @Category 从junit4中获取,用于将测试分类为集成测试。
@Category
@Category(IntegrationTest.class) public class YourTest
所以使用maven surefire 以及 failsafe 创建测试组的插件。
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包。但是,如果你跑 mvn integration-test 所有集成测试都将运行。
mvn integration-test
1条答案
按热度按时间yrdbyhpb1#
定义接口集成测试
并使用注解
@Category
从junit4中获取,用于将测试分类为集成测试。所以使用maven
surefire
以及failsafe
创建测试组的插件。集成测试将自动从默认执行中排除,即mvn clean包。但是,如果你跑
mvn integration-test
所有集成测试都将运行。