生成代码覆盖度量标准
代码覆盖会告诉您测试了多少申请。
Circleci为代码覆盖报告提供了许多不同的选项,使用内置Circleci功能与开源库或使用合作伙伴组合。
在Circleci上查看覆盖范围
您可以将代码覆盖率直接上传到Circleci。首先,将覆盖库添加到项目中,并配置您的构建以将Coverage报告写入Circleci的神器目录。然后,代码覆盖报告将存储为构建工件,从可以查看或下载它们。看我们构建文物导游更多关于访问覆盖报告。
红宝石
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. modelversion> com.foo. groupid> demoproject. ARTIFACTID> 0.0.1-Snapshot.版本><包装>罐包装> demoproject. name> http://maven.apache.org. URL><属性> UTF-8. 1.6 maven.Compiler.source> 1.6 maven.compiler.target>属性><依赖性><依赖> junit. groupid> junit. ARTIFACTID> 4.11版本><范围>测试范围>依赖>依赖关系> <插件><插件> org.jacoco. groupid> jacoco-maven-plugin ARTIFACTID> 0.8.3.版本><执行><执行> 准备代理人 id><目标><目标>准备代理人目标>目标>执行><执行> 报告 id><阶段>准备包阶段><目标><目标>报告目标>目标>执行><执行> 后单位测试 id><阶段>测试阶段><目标><目标>报告目标>目标><配置><! - 设置包含执行数据的文件的路径。- > 目标/ jacoco.exec. datafile><! - 设置代码覆盖报告的输出目录。- > 目标/我的报告 outputDirectory>配置>执行>执行><配置> 目标/ jacoco.exec. systempropertyvariables>配置> plugin> plugins> build> project>
跑步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将在并发作业中自动处理覆盖统计数据的合并。