java - 如何让jenkins仅在部署到UAT时运行集成测试?

标签 java jenkins continuous-integration integration-testing

我正在使用 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 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 包。但是,如果您运行mvnintegration-test,所有集成测试都将运行。

关于java - 如何让jenkins仅在部署到UAT时运行集成测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60218348/

相关文章:

linux - 仅在从节点 Jenkins 中保存构建数据

angular - 如何使用 Angular CLI 生成源映射并将它们上传到 Sentry?

java - 选择项目时微调器不会突出显示

Java 8/JBoss 7 - 无法获取 bean 实例

maven - 在 Jenkins 上运行 Maven Webdriver Testng 测试,无法识别的错误

regex - 我如何配置 Jenkins 来构建除我排除的少数分支之外的所有分支?

java - Android非静态字符串转静态字符串错误

java - 链表栈/泛型实现(作业)

maven - Jenkins 使用 Maven 在奴隶中工作 - Maven 家不存在

android - 将 Android 依赖项添加到 Docker 构建镜像 - Bitbucket Pipelines (CI)