小编twb*_*mer的帖子

如何使用 click、coverage.py 和 Tox 测试 Python CLI 程序?

我正在使用click开发一个 CLI 程序,我想开始添加一些使用coverage.py进行代码覆盖分析的测试。

我认为实现测试的一个好方法是使用子进程运行 CLI 本身。然而,coverage.py 报告零代码覆盖率,大概是因为子进程产生的 Python 实例没有coverage.py 检测。

我发现这个链接说我可以sitecustomize.py在我的 PYTHONPATH 中放置一个文件以始终强制 Python 开始覆盖率测量,但我正在使用 Tox 创建一个 venv 并运行测试。我找不到任何处理此问题的 Tox 设置。

我发现这个答案是说我应该只是运行通过我的CLI coverage run,但它看起来像,如果给一个Python脚本的路径,只有工作,我试图通过定义的入口点运行我的CLI setup.py。即我必须将测试代码中的所有命令行从myprogram更改为coverage run myprogram/cli/cli.py。我宁愿不这样做,因为这不是我期望用户运行程序的方式。

所以看起来两个选项是:

  1. 找出一种sitecustomize.py在 Tox 环境中工作的方法,或者

  2. 测试代码中的所有命令行都使用脚本路径而不是入口点(从长远来看可能更容易,但会使测试变得更加脆弱和难以理解)。想知道是否还有什么我遗漏的。

python code-coverage coverage.py python-click

3
推荐指数
1
解决办法
2321
查看次数

Perl:测试位串中的任意位

我正在尝试解析Linyx sysfs中的CPU节点关联+缓存同级信息.

我可以得到一串比特,例如:

0000111100001111

现在我需要一个函数,其中我有一个十进制数(例如4或5),我需要测试第n位是否设置.因此,它会返回true4false5.我可以通过移动1n次来创建一个字符串,但我不确定语法,是否有更简单的方法?此外,对字符串的长度没有限制,所以我想避免使用十进制< - >二进制转换.

perl

-1
推荐指数
1
解决办法
854
查看次数

标签 统计

code-coverage ×1

coverage.py ×1

perl ×1

python ×1

python-click ×1