为Vim脚本生成覆盖率信息。
项目描述
covimerage
为Vim脚本生成代码覆盖率信息。
它解析Vim的:profile
命令的输出,并生成与Coverage.py兼容的数据。
安装
您可以使用pip安装covimerage
pip install covimerage
简单用法
您可以使用covimerage run
来包装对Neovim/Vim的调用,包括必要的样板代码
covimerage run vim -Nu test/vimrc -c 'Vader! test/**'
这将默认写入文件.coverage_covimerage
(使用--data-file
进行配置),它与Coverage.py兼容。报告将自动生成(在stdout中)。
然后您可以调用covimerage xml
来创建一个coverage.xml
文件(Cobertura兼容),该文件可以被如Codecov的codecov
工具消费,例如通过codecov -f coverage.xml
。
手动/高级用法
1. 为您的Vim脚本生成配置文件信息
您基本上需要在您的测试vimrc中添加以下内容
profile start /tmp/vim-profile.txt
profile! file ./*
这将使Neovim/Vim写入包含配置文件信息的文件。
2. 在输出文件上调用covimerage
covimerage write_coverage /tmp/vim-profile.txt
这将创建一个文件.coverage_covimerage
(默认为--data-file
),其中包含标记供Coverage.py插件(由covimerage提供)处理的条目。
3. 在.coveragerc中包含covimerage插件
当使用coverage
对生成的输出(数据文件)进行处理时,您需要将covimerage
插件添加到.coveragerc
文件(Coverage.py使用的文件)。这基本上就是您需要的所有.coveragerc
,但您也可以在这里使用其他设置(针对Coverage.py),例如忽略某些文件
[run]
plugins = covimerage
data_file = .coverage_covimerage
4. 创建报告
现在您可以使用例如 coverage report -m
这样的命令,并且应该能够使用像 https://codecov.io/ 或 https://coveralls.io 这样的覆盖率报告平台,它们基本上使用 coverage xml
。
参考实现
-
Neomake 是首个采用该功能的。它拥有高级的测试设置(包括基于 Docker 的构建),在为您的插件/项目设置 covimerage 时查看此设置可能会有所帮助。
- Neomake 在 codecov.io 上的覆盖率报告
- PR/更改以集成到 Neomake(Neomake 的测试设置相当高级,所以不要因此而害怕!)
注意事项
如果测试后函数被重新定义,函数的覆盖率信息可能会被清除。这是一个已知限制,它不依赖于 covimerage 的实现,而是依赖于 vim 分析器本身,因为用于提取覆盖率信息的函数分析数据,在函数被重新定义时会被重置,即使定义相同。
如果出于某些原因(例如在模拟某个函数时)在测试之间重新加载了用于检查覆盖率的源文件,这可能会成为一个问题。为了防止覆盖率信息丢失,一种解决方案是将此类测试写入一个单独运行的测试套件,并使用 covimerage run --append
合并覆盖率结果。
链接
- 在 Coverage.py 的问题跟踪器中的讨论:覆盖率问题 607
待办事项
- 行点击次数:covimerage 知道,但不支持 Coverage.py(https://bitbucket.org/ned/coveragepy/issues/607/#comment-40048034)。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
构建分布
covimerage-0.2.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5ef40302f028c86fa7c6b30f5a0026b5049df7635680d49190ae5575b81ca3ba |
|
MD5 | 61d55484e04b1b5c8b161f386558e1c2 |
|
BLAKE2b-256 | e7fd45a6ce480ac42e53b5d6cf6c8c93620e5d2ba39060df2713fff00651e2de |