在大型软件系统中经常出现的情况是,对于每次代码更改,我们都希望单元测试和集成测试能够自动化执行。此外,在协作项目中,手动测试的方式是不切实际的。幸运的是,持续集成是一种旨在自动化软件开发的实践。Travis CI是一种公共的持续集成服务,允许你基于事件钩子在云端自动化运行项目测试。出现新的提交推送是事件钩子的示例之一。

    Travis一般用于自动化构建和测试,并报告失败的构建操作,也可以用于创建软件版本,甚至在临时或生产环境部署软件。本节将会重点介绍Travis的某些特性,从而为我们的项目执行自动化测试。GitHub已经与Trabis集成,可以在我们的项目发送新的提交时运行测试。要实现这一目标,我们需要具备以下条件。

    • GitHub上拥有一个项目。
    • 拥有Travis中的一个账户,用于登陆GitHub
    • 你的项目支持在Trabis中构建。
    • 拥有一个位于你的版本库根目录下的.travis.yml文件,用于告知Travis执行哪些内容。

    第一步是访问travis-ci网站,并使用自己的GitHub凭据登陆,登陆后,可以在Travis中添加我们的GitHub版本库。TravisRust项目提供了很好的原生支持,并能够确保及时更新Rust编译器版本。它为Rust项目提供了基本的.travis.yml文件,如下所示:

    :::info language: rust

    rust:

    1. - stable
    2. - beta
    3. - nightly

    matrix:

    1. allow_failures:
    2. - rust: nightly
    3. fast_finish: true

    cache: cargo

    script:

    1. - cargo build --verbose
    2. - cargo test --verbose

    :::

    将其推送到GitHub上之后,我们需要在项目的相关配置页面上启用Travis,如下所示:

    CI 集成测试与 Travis CI - 图1

    上图来自我的 Travis CI 账户。现在,我们将通过添加一个简单的 README.md 文件来触 发 Travis 构建运行器,从而提交我们的 logic_gates 版本库。此外,我们还需要在 README.md 文件中添加一个构建标记,该文件将向用户显示版本库的状态。为此,我们将单击右侧的构建通过标记:

    CI 集成测试与 Travis CI - 图2

    我们将复制此链接,并将其添加到 README.md 文件的顶部,如下所示:

    :::info [![Build

    Status](https://travis-ci.org/$USERNAME/$REPO_NAME.svg?branch=master)]

    (https://travis-ci.org/creativcoder/logic_gates)

    [![Build

    Status](https://app.travis-ci.com/Yog-sothoths/Rust-tests.svg?token=sKugsiBPYZrLcuRFkqFz&branch=master)]

    (https://travis-ci.org/creativcoder/logic_gates)

    :::

    你需要将$USERNAME$REPO_NAME 替换成自己的信息。

    1. 更改并提交 `README.md` 文件之后,我们将会看到 `Travis` 构建启动并成功执行:

    CI 集成测试与 Travis CI - 图3