1. 概述

在本教程中,我们将学习如何在 Jenkins 上运行使用 TestNG 编写的测试任务。

我们会重点关注以下几个方面:

  • 在 GitHub 项目中集成 TestNG 框架
  • 本地搭建 Jenkins 环境
  • 配置 Jenkins job 执行测试
  • 查看测试报告与趋势分析

最终目标是实现自动化执行 TestNG 测试,并通过 Jenkins 的可视化界面查看执行结果。

2. 环境准备

首先,我们需要在 Maven 项目中引入 TestNG 的依赖。在 pom.xml 中添加如下内容:

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.6.1</version>
    <scope>test</scope>
</dependency>

如果你使用的是 Eclipse,建议从 Eclipse Marketplace 安装 TestNG 插件,这样可以更方便地编写和运行测试用例。

3. 编写 TestNG 测试

我们可以通过 @org.testng.annotations.Test 注解来编写测试方法。例如:

@Test
public void givenNumber_whenEven_thenTrue() {
    assertTrue(number % 2 == 0);
}

接着,我们可以在 src/test/resources 目录下创建一个 TestNG 的 XML 配置文件(例如 test_suite.xml),用于指定运行哪些测试类:

<suite name="suite">
    <test name="test suite">
        <classes>
            <class name="com.baeldung.SimpleLongRunningUnitTest" />
        </classes>
    </test>
</suite>

为了确保 Maven 在构建时使用这个 TestNG 套件,我们还需要在 pom.xml 中配置 maven-surefire-plugin 插件:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>
                src/test/resources/test_suite.xml
            </suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

4. 本地运行 TestNG 测试

我们可以使用如下命令构建并运行测试:

mvn clean install

✅ 也可以通过 -P 参数指定 Maven 的 profile,例如:

mvn clean test install -Pdefault-second

运行结果会显示测试是否通过、总共运行了多少个测试,以及失败或跳过的数量。

TestNG maven build command

5. 本地部署 Jenkins

Jenkins 是一个开源的持续集成服务器,可以用于自动化构建、测试和部署任务。我们将使用 Jenkins 来运行我们的 TestNG 测试。

5.1. 下载与安装 Jenkins

brew install jenkins

5.2. 启动 Jenkins 并配置 Dashboard

启动 Jenkins 的命令如下:

/usr/local/opt/jenkins/bin/jenkins --httpListenAddress=127.0.0.1 --httpPort=8080

启动后,访问 http://127.0.0.1:8080,输入初始密码后进入插件安装界面。

安装完成后,设置管理员账户和 Jenkins URL(可选)。

5.3. 安装 Maven 与 GitHub 插件

进入 Jenkins 的 Manage Jenkins > Global Tool Configuration 页面,启用 Maven 的自动安装功能:

jenkins maven installation

然后在 Manage Jenkins > Manage Plugins 页面中搜索并安装以下插件:

  • GitHub Integration
  • Maven Integration

安装完成后,Jenkins 就具备了与 Maven 和 GitHub 集成的能力。

5.4. 配置 Jenkins Job

创建一个 Maven Project 类型的 job:

  1. 勾选 GitHub project 并填写项目地址
  2. Source Code Management 中选择 Git 并填写仓库地址和分支
  3. Build 部分指定 pom.xml 的路径和 Maven 命令,例如:
clean test install -Pdefault-second

maven build command

保存配置后点击 Build Now 开始构建。

5.5. 查看构建日志与测试报告

点击构建任务编号后,选择 Console Output 可查看详细构建日志:

jenkins build logs

Jenkins 还会自动生成测试结果趋势图,便于我们分析测试稳定性:

jenkins test result trend visualisation

6. 总结

本文介绍了如何在 Jenkins 上配置并运行 GitHub 项目中的 TestNG 测试任务,包括:

  • Maven 项目集成 TestNG
  • Jenkins 本地部署与插件配置
  • 创建 Jenkins job 并运行测试
  • 查看构建日志与测试趋势图

通过 Jenkins,我们可以实现 TestNG 测试的自动化执行与结果可视化,提升测试效率和 CI/CD 流程的可靠性。

完整示例代码可参考:GitHub 仓库


原始标题:How to Run TestNG Tests on Jenkins