如何让jenkins只在部署到uat时运行集成测试?

ego6inou  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(383)

我在用Jenkins,我有一个 staging > qa > uat > master environment set. 我不希望jenkins在staging和qa环境中运行任何集成测试,只针对uat和master。
有可能吗?如果是,怎么做?我是说,我应该在不同的包中分离单元测试和集成测试吗?今天我有:

src/main/java

src/test/java
yrdbyhpb

yrdbyhpb1#

定义接口集成测试

public interface IntegrationTest {}

并使用注解 @Category 从junit4中获取,用于将测试分类为集成测试。

@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包。但是,如果你跑 mvn integration-test 所有集成测试都将运行。

相关问题