gpt4 book ai didi

python - 代码覆盖率和三元运算符

转载 作者:太空狗 更新时间:2023-10-30 02:53:53 25 4
gpt4 key购买 nike

假设我们在 module.py 中测试了这个函数:

def f(a, b):
return (a - b) if a > b else 1 / 0

并且,我们在 test_module.py 中有以下测试用例:

from unittest import TestCase

from module import f


class ModuleTestCase(TestCase):
def test_a_greater_than_b(self):
self.assertEqual(f(10, 5), 5)

如果我们使用 pytest 运行测试并启用“分支覆盖率”和 HTML 输出报告:

pytest test_module.py --cov=. --cov-branch --cov-report html

该报告将声称 100% 的分支覆盖率包括所有“部分”分支:

enter image description here

但是,我们显然根本没有涵盖 else 1/0 部分。

有没有办法改进报告以查看三元运算符的未涵盖部分?

最佳答案

分支覆盖率只能测量从一行到另一行的分支,因为 Python 的跟踪工具目前仅支持逐行跟踪。 Python 3.7 引入了一些字节码级别的跟踪,但要使用它需要大量工作。

https://github.com/nedbat/coveragepy/issues/509是关于这个的问题。

关于python - 代码覆盖率和三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com