python测试代码覆盖率_python – Django测试覆盖率与代码覆盖率

因为你使用django-nose,你有两个选项来运行覆盖。第一个是DaveB已经指出的:

coverage run ./manage.py test myapp

上面的实际运行覆盖,然后监视由测试命令执行的所有代码。

./manage.py test myapp --with-coverage

(还有一些额外的选项,包括哪些模块应该涵盖,是否包含一个html报告等),这些都在上面的链接中记录 – 你也可以输入./manage.py test –help了解一些快速的信息)。

运行鼻子覆盖插件将导致django引导代码执行后覆盖运行,因此相应的代码将不会被报告为覆盖。

当您运行覆盖原始方式时,您看到的大部分代码都被覆盖,是import语句,类定义,类成员等。由于python在导入时间内对它们进行了评估,因此覆盖自然会被标记为覆盖。然而,运行鼻插件将不会报告自从在加载django环境后测试运行器启动的引导代码。当然,这样做的另一个副作用是你永远不能实现100%的覆盖(…或关闭:)),因为您的全球范围声明将永远不会被覆盖。

在切换来回播放覆盖选项后,我现在已经结束了使用这样的覆盖:

coverage run --source=myapp,anotherapp ---omit=*/migrations/* ./manage.py test

所以a)覆盖将报告导入语句,类成员定义等等(实际上是事实 – 这个代码被成功导入和解释)和b)它将仅覆盖我的代码而不是django代码,或任何其他第三方代码,我使用的party app覆盖率将反映我的项目覆盖率。希望这可以帮助!

你可能感兴趣的:(python测试代码覆盖率)