Python 不包括';其他';保险范围内的条款

Python 不包括';其他';保险范围内的条款,python,testing,backwards-compatibility,coverage.py,Python,Testing,Backwards Compatibility,Coverage.py,我正在用python创建一个库,它将与python2和python3兼容。我决定使用python3中可用的特性(即元类上的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 我将PEP3115常数简单定义为: PEP3115 = sys.version_info >= (3, 0)

我正在用python创建一个库,它将与python2和python3兼容。我决定使用python3中可用的特性(即元类上的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

我将PEP3115常数简单定义为:

PEP3115 = sys.version_info >= (3, 0)                                            
因此,我可以使用:

if PEP3115:
    # python3 logic
else:
    # python2 logic

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

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