微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何确保测试触及代码库的每一行?

我有一个大约1万行的项目,我正在尝试确保所有内容均已覆盖.

我知道还有很多复杂的考虑因素,但是作为一个基准,我想知道是否有一种方法可以让pytest告诉我它可以访问多少行(占代码库中行数的百分比).

例如,它可以通知我,如果在if / else控制结构中,测试仅覆盖True情况,还是根本不运行某些功能.

这肯定偏向于大型的笨拙的单元测试,而不是小型的精确测试,但在现阶段,我仍然觉得它很方便.

我想这是有可能的,因为诸如line_profiler之类的工具可以提供信息.

解决方法:

Coverage可能是您正在寻找的工具:

Coverage.py measures code coverage, typically during test execution.
It uses the code analysis tools and tracing hooks provided in the
Python standard library to determine which lines are executable, and
which have been executed.

覆盖率可以衡量您要覆盖的行,还可以帮助您确定待处理的行.例如,在coverage documentation中,您可以看到它生成的报告类型:

$coverage report -m 
Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
my_program                   20      4    80%   33-35, 39
my_other_module              56      6    89%   17-23
-------------------------------------------------------
TOTAL                        76     10    87%

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐