22 持续集成与自动化测试之集成自动化测试到CI工具

在上一篇文章中,我们探讨了持续集成(CI)的基本概念以及它在现代软件开发中的重要性。本篇将深入探讨如何将自动化测试集成到CI工具中,以提升开发效率和软件质量。我们将以流行的CI工具为例,提供实际的集成步骤和代码示例,帮助你快速上手。

CI工具的选择

现今有多种CI工具可以选择,例如:

  • Jenkins
  • GitHub Actions
  • GitLab CI
  • Travis CI
  • CircleCI

本文将以 GitHub Actions 为例来说明如何将自动化测试集成到CI流程中,因为它与GitHub代码库的密切集成,使得配置和使用非常方便。

自动化测试的环境准备

为集成自动化测试到CI工具,首先,我们需要一个测试环境。以Python项目为例,通常的测试框架有:

  • unittest
  • pytest

在开始之前,请确保你的项目中已安装所需的测试框架。你可以使用以下命令来安装 pytest

1
pip install pytest

并在项目根目录中创建一个测试文件,例如 test_sample.py

1
2
3
4
5
6
# test_sample.py
def test_add():
assert 1 + 1 == 2

def test_subtract():
assert 2 - 1 == 1

集成到 GitHub Actions

接下来,我们将创建一个 GitHub Actions 的工作流文件来自动化执行这些测试。

  1. 在你的 GitHub 项目中,创建一个 .github/workflows 文件夹。
  2. 在该文件夹中创建一个名为 ci.yml 的文件。

ci.yml 文件中,添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
name: CI

on: [push, pull_request]

jobs:
test:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest

- name: Run tests
run: |
pytest

代码解析

  • name: CI:定义工作流的名称。
  • on: [push, pull_request]:当代码被推送到主分支或有拉取请求时触发工作流。
  • jobs 部分定义工作流中的任务。其中 test 任务会在一个 ubuntu-latest 的虚拟环境中运行。
  • steps 列表定义任务的具体步骤:
    • 使用 actions/checkout@v2 检出代码。
    • 使用 actions/setup-python@v2 设置 Python 环境。
    • 安装 pytest 进行测试。
    • 运行 pytest 执行测试。

提交代码并观察结果

提交以上变更:

1
2
3
git add .
git commit -m "Add CI workflow for automated testing"
git push origin main

在推送代码后,GitHub Actions 将自动执行上述工作流。你可以在GitHub项目的“Actions”选项卡中查看执行状态与日志。

尝试复杂场景

如果你的自动化测试需要使用特定的环境或者依赖,可以在 Install dependencies 步骤中添加其他命令,或者创建一个 requirements.txt 文件来更好地管理依赖,例如:

1
pip freeze > requirements.txt

然后在 GitHub Actions 中添加以下步骤:

1
2
3
4
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

结论

通过将 pytest 测试集成到 GitHub Actions,我们成功实现了自动化测试的持续集成。这种方法能够确保每次代码的变更都经过验证,提高了软件质量,减少了手动测试的工作量。

在下一篇文章中,我们将讨论 自动化测试的最佳实践,帮助你更深入地理解如何编写和管理高效的自动化测试代码。

22 持续集成与自动化测试之集成自动化测试到CI工具

https://zglg.work/python-auto-test/22/

作者

AI免费学习网(郭震)

发布于

2024-08-11

更新于

2024-08-12

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论