首页 > 编程笔记
GitHub Coveralls工具介绍(测试覆盖率)
Coveralls 是由 Lemur Heavy Industries 运营的代码覆盖率检测服务。借助 Travis CI 或 Jenkins 等持续集成服务器,向用户报告自动测试的测试覆盖率(图 1)。
图 1 代码覆盖率的报告
该服务支持 Ruby/Rails、Python、PHP、JavaScript/Node.js、C/C++、Java、Scala 等语言。
除简略报告外,用户还可以查看代码每部分执行了多少次测试等信息(图 2)。
图 2 详细报告
Coveralls 可以为每一个 Pull Request 生成一份报告,我们建议各位使用这项服务,以时常提醒自己注意覆盖率问题。另外,由于用户可以通过详细报告了解哪些代码没有被测试,所以还有助用户改进自动测试的内容,提高测试效率。
这项服务对开源开发是免费的,私有仓库则需要支付一定费用,具体金额请查看官方网站。
下面我们来举例讲解 Coveralls 的安装方法。
只要满足以上条件,就可以立即使用 Coveralls。
这次我们借用 Ruby 开发的 CMS——lokka来进行安装。
页面中会列表显示我们在 GitHub 端的仓库(图 3),添加时只需要将仓库名右边的开关设置为 ON。
图 3 仓库列表
返回 Coveralls 首页,我们能看到刚才设置为 ON 的仓库已经成为报告对象。点击链接会进入图 4 所示的页面,这个页面为我们讲解了如何编写 Coveralls 的配置文件以及需要安装哪些插件。
图 4 Coveralls 的配置解说页面
我们在 Gemfile 中添加下面一行文字。
与 Travis CI 一样,Coveralls 也提供了让 README.md 显示相关信息的标记。在报告下部 README BADGE 栏内的图片下方可以找到 Get badge URLs,点击之后便可获得 URL(图 8.10)。将 URL 添加至 README.md 文件后,我们就可以在 GitHub 上看到与 README BADGE 栏中同样的图片了。
图 5 Coveralls 的标记
图 1 代码覆盖率的报告
该服务支持 Ruby/Rails、Python、PHP、JavaScript/Node.js、C/C++、Java、Scala 等语言。
除简略报告外,用户还可以查看代码每部分执行了多少次测试等信息(图 2)。
图 2 详细报告
Coveralls 可以为每一个 Pull Request 生成一份报告,我们建议各位使用这项服务,以时常提醒自己注意覆盖率问题。另外,由于用户可以通过详细报告了解哪些代码没有被测试,所以还有助用户改进自动测试的内容,提高测试效率。
这项服务对开源开发是免费的,私有仓库则需要支付一定费用,具体金额请查看官方网站。
下面我们来举例讲解 Coveralls 的安装方法。
Coveralls的安装
Coveralls 的安装非常简单,但使用时有前提条件。- 源代码保存在 GitHub 上;
- 已经集成了 Travis CI 或 Jenkins 等服务。
只要满足以上条件,就可以立即使用 Coveralls。
这次我们借用 Ruby 开发的 CMS——lokka来进行安装。
1) 注册
访问 Coveralls 的首页并点击 FREE SIGN UP,可以经由 GitHub 注册账户。2) 添加对象仓库
账户注册成功后再到 Coveralls 的首页点击 ADD REPO,这里可以添加需要生成覆盖率报告的仓库。页面中会列表显示我们在 GitHub 端的仓库(图 3),添加时只需要将仓库名右边的开关设置为 ON。
图 3 仓库列表
返回 Coveralls 首页,我们能看到刚才设置为 ON 的仓库已经成为报告对象。点击链接会进入图 4 所示的页面,这个页面为我们讲解了如何编写 Coveralls 的配置文件以及需要安装哪些插件。
图 4 Coveralls 的配置解说页面
3) 编写配置文件
Coveralls 的配置文件是 .coveralls.yml。我们将这个文件放到仓库路径下。文件内容如下所示。service_name:travis-ci ←描述正在使用的CI
如果各位使用其他的持续集成服务器(Jenkins 等),最好按照自己的需要将 service_name 改成简单易懂的名称。另外,这种情况下 repo_token 需要描述成 repo_token:xxxxxyyyyyzzzz 的形式。repo_token 可以在图 4 所示的页面中找到。4) 添加 gem
如果使用 Ruby 或 Rails,还需要添加 gem。使用其他语言的读者请查看官方网站的相应文档。我们在 Gemfile 中添加下面一行文字。
gem 'coveralls', require:false
另外,还要在 ./spec/spec_helper.rb 或 ./test/test_helper.rb 等各位正在使用的测试工具的 helper 文件中添加下面这段代码。
require 'coveralls'
Coveralls.wear!
require 'coveralls'
Coveralls.wear!('rails')
5) 查看报告
完成上述设置后进行 push 操作,Coveralls 就会在 Travis CI 自动测试后生成报告。Coveralls 报告的 URL 为 https://coveralls.io/r/用户名/仓库名。与 Travis CI 一样,Coveralls 也提供了让 README.md 显示相关信息的标记。在报告下部 README BADGE 栏内的图片下方可以找到 Get badge URLs,点击之后便可获得 URL(图 8.10)。将 URL 添加至 README.md 文件后,我们就可以在 GitHub 上看到与 README BADGE 栏中同样的图片了。
图 5 Coveralls 的标记