How do I interpret Python coverage.py branch coverage results?

霸气de小男生 提交于 2020-04-12 10:01:36

问题


I'm using coverage.py to measure the code coverage of my tests. I've enabled branch coverage, but I can't quite make sense of the report.

Without branch coverage, I get 100% coverage:

Name                           Stmts   Miss  Cover   Missing
------------------------------------------------------------
mylib/queries.py                  44      0   100%

With branch coverage enabled:

Name                           Stmts   Miss Branch BrPart  Cover   Missing
--------------------------------------------------------------------------
mylib/queries.py                  44      1     20      3    94%   55, 21->10, 53->-48, 59->-58

The source in question can be found here.

21->10 makes sense; the if clause never evaluates to False (jumping back to the beginning of the outer for loop).

However, 53->-48 and 59->-58 have me scratching my head. What do they mean?


回答1:


Dan's comment is close. First, the negative numbers mean, an exit from a function starting at that line number. So -48 means, exit from the function starting at line 48.

The issue isn't empty loops: those branches would have happened if the loops ever completed. It looks like perhaps they did not.

BTW: Coverage.py 4.1b3 has changed some of this behavior: they'd be marked as 53->exit, 59->exit. Also, the branches themselves might be identified differently. Give it a try.



来源:https://stackoverflow.com/questions/37304078/how-do-i-interpret-python-coverage-py-branch-coverage-results

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!