在某些代码中,我从Python 2移植到了3,但仍然需要在两者上运行,我有类似的东西:
b
因为GTK-3 if six.PY2:
_text = widget.get_text().strip().decode('utf-8')
else:
_text = widget.get_text().strip()
在Python 2中返回字节,而在Python 3中返回Unicode。这是PITA,因为我将widget.get_text()
传递给需要Unicode的方法。因此,在Python 2中,我必须解码得到的所有数据。
我有模拟_text
的单元测试,但是很明显,那些单元测试只能在一个版本的Python下运行。我可以在Python 2分支中添加一个widget.get_text
,但感觉像是在作弊。
所以,问题:
答案 0 :(得分:2)
为什么不测量两个版本的覆盖率,然后合并数据并在合并结果中寻找100%?
例如:
$ python2 -m coverage run --parallel run_the_tests.py
$ python3 -m coverage run --parallel run_the_tests.py
$ python3 -m coverage combine
$ python3 -m coverage html