生成代码覆盖度量标准

代码覆盖会告诉您测试了多少申请。

Circleci为代码覆盖报告提供了许多不同的选项,使用内置Circleci功能与开源库或使用合作伙伴组合。

在Circleci上查看覆盖范围

您可以将代码覆盖率直接上传到Circleci。首先,将覆盖库添加到项目中,并配置您的构建以将Coverage报告写入Circleci的神器目录。然后,代码覆盖报告将存储为构建工件,从可以查看或下载它们。看我们构建文物导游更多关于访问覆盖报告。

工件标签拼写筛选“></p>
      <p>以下是一些示例,用于向不同语言配置覆盖库。</p>
      <h2 id=红宝石

SimpleCov.是一个受欢迎的Ruby代码覆盖库。要开始,添加SimpleCov.宝石给你的吉他美

宝石'simplecov',需要:false,组::测试

开始SimpleCov.当您的测试套件开始时。下面的示例演示了配置SimpleCov以进行rails使用。

要求'simplecov'#<<要求SimpleCovSimpleCov.开始'Rails'#<<启动SimpleCov,使用“Rails”预设。env.['rails_env']|| ='测试'Request_relative.'../config/environment'要求'Rails / Test_help'ActiveSupport.::测试用例#设置测试/夹具/ *中的所有夹具。yml以字母顺序排列所有测试。夹具:所有#添加更多辅助方法,通过所有测试使用......结束

现在配置你的.circleci / config.yml.要上传覆盖报告。

2职位建立Docker.-图片Circleci / Ruby:2.5.3-节点浏览器验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考环境rails_env.测试-图片Circleci / postgres:9.5-高山验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考环境postgres_user.Circleci-demo-Rubypostgres_db.rails_blog.postgres_password.脚步-查看-名称捆绑安装命令捆绑检查||捆绑安装-名称等待DB.命令dockerize -wait tcp:// localhost:5432 -timeout 1m-名称数据库设置命令Bin / Rails DB:Schema:Load -Trace-名称运行测试命令垃圾箱/轨道测试-Store_Arifacts.路径覆盖范围

SimpleCov Readme.有更多细节。

蟒蛇

coverage.py.py.py.是一个流行的库,用于在Python中生成代码覆盖报告。要开始,请安装coverage.py:

pip安装覆盖范围
#以前您可能已经运行了Python项目,如:python my_program.py arg1 arg2#现在将前缀“coverage”到您的命令。Ruckage运行my_program.py arg1 arg2

在这方面,您可以使用以下命令生成覆盖报告:

覆盖范围-M.PyTest覆盖报告报告覆盖范围HTML#在浏览器中打开htmlcov / index.html

将找到生成的文件htmlcov /,可以上传Store_Arifacts.步骤在您的配置中:

2职位建立Docker.-图片circleci / python:3.7-node-浏览器 - 遗留验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考脚步-查看-名称安装测试环境命令|pip安装'。[test]'--user回声$ Home.-名称运行测试命令|$ home / .local / bin / coverage运行-m pytest$ home / .local / bin / coverage报告$ home / .local / bin / coverage html#在浏览器中打开htmlcov / index.html-Store_Arifacts.路径htmlcov.工作流程2工作流程职位-建立

java.

雅各布是一个流行的Java代码覆盖库。下面是一个示例pom.xml,包括JUnit和Jacoco作为构建系统的一部分:

<项目XMLNS =“http://maven.apache.org/pom/4.0.0”XMLNS:XSI =“http://www.w3.org/2001/xmlschema-instance”XSI:Schemalocation =“http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>4.0.0.com.foo.demoproject.0.0.1-Snapshot.<包装>demoproject.http://maven.apache.org.<属性>UTF-8.1.61.6<依赖性><依赖>junit.junit.4.11<范围>测试<插件><插件>org.jacoco.jacoco-maven-plugin0.8.3.<执行><执行>准备代理人<目标><目标>准备代理人<执行>报告<阶段>准备包<目标><目标>报告<执行>后单位测试<阶段>测试<目标><目标>报告<配置><! - 设置包含执行数据的文件的路径。- >目标/ jacoco.exec.<! - 设置代码覆盖报告的输出目录。- >目标/我的报告<配置>目标/ jacoco.exec.

跑步MVN测试将包括代码覆盖报告(一个exc.)也转换为的文件HTML.页面,如许多其他覆盖工具。上面的POM文件写入目标目录,您可以将其作为Circleci中的工件存储在一起config.yml.文件。

以下是最小的CI配置,以与上述示例对应:

2职位建立Docker.-图片Circleci / OpenJDK:11.0-Stretch-Node-浏览器 - 遗留验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考脚步-查看-MVN测试-Store_Arifacts.路径目标

javascript.

伊斯坦布尔是一个流行的库,用于为JavaScript项目生成代码覆盖报告。另一个流行的测试工具,Jest,使用istanbul生成报告。考虑这个例子:

2职位建立Docker.-图片circleci / node:10.0-浏览器验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考脚步-查看-NPM安装-名称笑话搜集覆盖范围报告“命令jest --collectcoverage = true-Store_Arifacts.路径覆盖范围

PHP.

PHPUnit是PHP的流行测试框架。要生成代码覆盖报告,您可能需要安装php xdebug.如果您使用的是早期版本而不是PHP 5.6。5.6之后PHP的版本可以访问名为PHPDBG的工具;您可以使用该命令生成报告PHPDBG -QRR供应商/ BIN / PHPUNIT - COVERRAGE-HTML构建/覆盖范围

在以下基本情况下.circleci / config.yml.我们上传了覆盖报告Store_Arifacts.步骤在配置末尾。

2职位建立Docker.-图片Circleci / PHP:7-FPM-浏览器 - 遗留验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考脚步-查看-名称测试“命令PHPDBG -QRR供应商/ BIN / PHPUNIT  -  COVERRAGE-HTML构建/覆盖范围-Store_Arifacts.路径构建/覆盖报告

戈兰

Go具有内置功能,可以生成代码覆盖报告。要生成报告,请添加标志-CoverProfile = C.out.。这将生成一个覆盖报告,可以通过转换为HTML去工具

测试-盖-CoverProfile.=C.out Go Tool Cover-html.=C.OUT.-OCoverage.html.html.

一个例子.circleci / config.yml.

2.1职位建立Docker.-图片Circleci / golang:1.11验证用户名mydockerhub-user.密码$ dockerhub_password.#上下文/项目UI ENV-VAR参考脚步-查看-去建设-名称创建一种临时目录对于文物“命令|MKDIR -P / TMP /伪影-命令|去测试-CoverProfile = C.outGO Tool Cover -HTML = C.out -o Coverage.htmlmv coverage.html / tmp /伪影-Store_Arifacts.路径/ tmp /伪影

使用代码覆盖服务

CODECOV.

Codecov有一个or为了帮助您轻松上传覆盖报告。

2.1绿色原子CODECOV.codecov/codecov@1.0.2职位建立脚步-Codecov /上传文件

阅读更多关于CodeCov的Orb的更多信息客人博客文章

套装

如果您是客户,请遵循他们的指南设置覆盖统计数据。你需要添加cockalls_repo_token.到你的circleci.环境变量

CoverAlls将在并发作业中自动处理覆盖统计数据的合并。