在大型软件系统中经常出现的情况是,对于每次代码更改,我们都希望单元测试和集成测试能够自动化执行。此外,在协作项目中,手动测试的方式是不切实际的。幸运的是,持续集成是一种旨在自动化软件开发的实践。Travis CI
是一种公共的持续集成服务,允许你基于事件钩子在云端自动化运行项目测试。出现新的提交推送是事件钩子的示例之一。
Travis
一般用于自动化构建和测试,并报告失败的构建操作,也可以用于创建软件版本,甚至在临时或生产环境部署软件。本节将会重点介绍Travis
的某些特性,从而为我们的项目执行自动化测试。GitHub
已经与Trabis
集成,可以在我们的项目发送新的提交时运行测试。要实现这一目标,我们需要具备以下条件。
- 在
GitHub
上拥有一个项目。 - 拥有
Travis
中的一个账户,用于登陆GitHub
。 - 你的项目支持在
Trabis
中构建。 - 拥有一个位于你的版本库根目录下的
.travis.yml
文件,用于告知Travis
执行哪些内容。
第一步是访问travis-ci
网站,并使用自己的GitHub
凭据登陆,登陆后,可以在Travis
中添加我们的GitHub
版本库。Travis
对Rust
项目提供了很好的原生支持,并能够确保及时更新Rust
编译器版本。它为Rust
项目提供了基本的.travis.yml
文件,如下所示:
:::info language: rust
rust:
- stable
- beta
- nightly
matrix:
allow_failures:
- rust: nightly
fast_finish: true
cache: cargo
script:
- cargo build --verbose
- cargo test --verbose
:::
将其推送到GitHub
上之后,我们需要在项目的相关配置页面上启用Travis
,如下所示:
上图来自我的 Travis CI 账户。现在,我们将通过添加一个简单的 README.md 文件来触 发 Travis 构建运行器,从而提交我们的 logic_gates 版本库。此外,我们还需要在 README.md 文件中添加一个构建标记,该文件将向用户显示版本库的状态。为此,我们将单击右侧的构建通过标记:
我们将复制此链接,并将其添加到 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
替换成自己的信息。
更改并提交 `README.md` 文件之后,我们将会看到 `Travis` 构建启动并成功执行: