【问题标题】:How to make jenkins run integration tests only when deploying to UAT?如何让 jenkins 仅在部署到 UAT 时运行集成测试?
【发布时间】:2020-02-14 00:18:46
【问题描述】:

我正在使用 jenkins,并且我有一个 staging > qa > uat > master environment set. 我不希望 jenkins 在 staging 和 qa 环境中运行任何集成测试,仅适用于 uat 和 master。

有可能做到吗?如果是这样,怎么做?我的意思是,我应该在不同的包中分离单元测试和集成测试吗?今天我有:

src/main/java

src/test/java

【问题讨论】:

    标签: java jenkins continuous-integration integration-testing


    【解决方案1】:

    定义一个接口IntegrationTest

        public interface IntegrationTest {}
    

    并使用来自 Junit4 的注释 @Category 将您的测试分类为集成测试。

    @Category(IntegrationTest.class)
    public class YourTest
    

    所以使用 maven surefirefailsafe 插件来创建睾丸组。

            <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 package。但是,如果您运行mvn integration-test,所有集成测试都会运行。

    【讨论】:

    • 您好,Edu,非常感谢您!不过还是需要测试一下。一旦我测试它并且它有效,我就会选择你的答案。
    • @VandersonAssis 如果您使用的是 JUnit5,那么您可以按照此处的说明进行操作:keyholesoftware.com/2018/02/12/…
    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 2012-02-12
    • 2013-06-24
    • 2014-07-03
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    相关资源
    最近更新 更多