gpt4 book ai didi

python - 排除 coverage 中的 'else' 子句

转载 作者:行者123 更新时间:2023-11-28 20:42:46 25 4
gpt4 key购买 nike

我正在用 python 创建一个库,它与 python2 和 python3 都兼容。我决定使用 python3 中可用的功能(即元类上的 __prepare__ 方法),并在 python2 中使用一些 hack(类上的计数器)来达到相同的目的。

我有一个简单定义为 PEP3115 的常量:

PEP3115 = sys.version_info >= (3, 0)                                            

所以我可以使用:

if PEP3115:
# python3 logic
else:
# python2 logic

然后,如果我将 if PEP3115: 作为忽略行添加到 .coveragerc 中,我将忽略 python3 逻辑。但是,我还想为 python3 测试创建一个不同的 .coveragerc 文件,它将忽略 python2 逻辑但将 python3 算作一个。可以用上面的代码实现吗,还是需要修改?

最佳答案

没有必要忽略 if/else 的任何一个分支。最好的办法是运行测试套件两次,一次在 Python 2 下,然后在 Python 3 下再次运行,但每次运行都使用不同的数据文件。然后使用“coverage combine”合并两次运行的数据,然后根据该数据生成报告。生成的报告将显示正在执行的 if/else 的两半。

关于python - 排除 coverage 中的 'else' 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26156525/

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