【发布时间】:2015-10-29 20:33:18
【问题描述】:
从 Python 的角度来看,如何确定包含函数或方法的单元测试,或者通常是测试运行程序在套件中的测试命中的任何代码行?考虑到覆盖工具知道被击中的特定代码,这些信息似乎是合理的,但我找不到任何方法来获取这些信息(我使用py.test作为我的测试运行程序coverage和pytest-cov 模块)。
我发现的一种方法是将pdb.set_trace 调用放入代码中,但如果我能找到一种不需要修改被测代码的更优雅的方法,那将非常有帮助。
【问题讨论】:
-
您的测试组织得如何?您可以运行子集来查看哪个调用了特定的行吗?
-
我一直在用鼻子做测试代码覆盖率。
nosetests --with-coverage --cover-tests -
它们组织得很好,但是收集了数千个测试,这是我偶尔会遇到的问题。
-
我专门用
py.test。nose是否具备这种开箱即用的能力?似乎--cover-tests标志只在报告中包含了测试本身,这与我在这里寻找的不同。 -
据我所知,这样做的唯一方法是运行更窄的测试子集来确定哪些调用线路 - 通常,覆盖工具设置为告诉你是否调用线路,而不是从哪里调用。
标签: python unit-testing code-coverage pytest