如何将自定义路径安装的coverage插件映射到nose2?
解决nose2调用自定义路径coverage生成覆盖率报告的问题
问题背景
已通过pip3 install nose2安装nose2,使用pip3 install --target=/tmp/coverage_pkg coverage在自定义路径完成coverage安装。执行nose2 --with-coverage时收到警告需安装nose2[coverage_plugin]扩展,且未运行测试,希望将自定义路径的coverage映射到nose2以生成覆盖率报告。
解决方法
nose2的覆盖率功能依赖两个核心部分:coverage包本身,以及nose2官方的coverage_plugin插件。你可以通过以下步骤实现需求:
1. 将自定义路径加入Python环境变量
因为coverage安装在非默认路径,Python无法自动识别,需要先把该路径加入PYTHONPATH:
- 临时生效(仅当前终端会话):
export PYTHONPATH=/tmp/coverage_pkg:$PYTHONPATH - 运行测试时临时指定:
PYTHONPATH=/tmp/coverage_pkg nose2 --with-coverage
2. 安装nose2的coverage插件到自定义路径
警告提示的nose2[coverage_plugin]是nose2的专属覆盖率插件,你可以把它也安装到同一个自定义路径:
pip3 install --target=/tmp/coverage_pkg nose2[coverage_plugin]
安装完成后,结合步骤1的PYTHONPATH配置,再运行nose2 --with-coverage即可正常执行测试并生成覆盖率报告。
3. 通过nose2配置文件指定路径(可选)
如果不想每次都设置环境变量,可以创建nose2.cfg配置文件来指定插件和coverage的路径:
[plugins] # 启用coverage插件 nose2.plugins.coverage = enabled [coverage] # 指定自定义路径下的coverage包位置 coverage_path = /tmp/coverage_pkg
然后使用以下命令运行测试:
nose2 --config nose2.cfg --with-coverage
内容的提问来源于stack exchange,提问作者Saif Baig
相关产品推荐
相关产品推荐

