我正在使用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。我宁愿不这样做,因为这不是我期望用户运行程序的方式。
所以看起来两个选项是:
找出一种sitecustomize.py在 Tox 环境中工作的方法,或者
测试代码中的所有命令行都使用脚本路径而不是入口点(从长远来看可能更容易,但会使测试变得更加脆弱和难以理解)。想知道是否还有什么我遗漏的。
我正在尝试解析Linyx sysfs中的CPU节点关联+缓存同级信息.
我可以得到一串比特,例如:
0000111100001111
现在我需要一个函数,其中我有一个十进制数(例如4或5),我需要测试第n位是否设置.因此,它会返回true的4和false为5.我可以通过移动1n次来创建一个字符串,但我不确定语法,是否有更简单的方法?此外,对字符串的长度没有限制,所以我想避免使用十进制< - >二进制转换.