[英]How to have 100% coverage on branching python versions?
在某些代碼中,我從Python 2移植到了3,但仍然需要在兩者上運行,我有類似的東西:
if six.PY2:
_text = widget.get_text().strip().decode('utf-8')
else:
_text = widget.get_text().strip()
因為GTK-3 widget.get_text()
在Python 2中返回字節,在Python 3中返回unicode,所以這是PITA,因為我將_text
傳遞給的方法需要unicode。 因此,在Python 2中,我必須解碼得到的所有數據。
我有一個模擬widget.get_text
單元測試,但是很明顯,它們在一個且只有一個版本的Python下運行。 我可以添加一個pragma: no test
對Python 2分支進行pragma: no test
,但感覺像是在作弊。
所以,問題:
為什么不測量兩個版本的覆蓋率,然后合並數據並在合並結果中尋找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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.