遇到一些代码覆盖率较小的问题,使用Django Web应用程序的nosetests和覆盖率。我已经创建了一个.coveragerc文件来排除大量的代码(比如类声明),但我仍然得到一些奇怪的结果。测试和覆盖不排除行
这里是我的.coveragerc文件:
[run]
omit = ../*migrations*, ../*admin.py
[report]
show_missing = True
exclude_lines =
pragma: no cover
from
= models\.
这是models.py文件的一个示例:
from django.db import models
class Query(models.Model):
variable1 = models.CharField(max_length=100)
variable2 = models.CharField(max_length=100)
variable3 = models.CharField(max_length=100)
variable4 = models.CharField(max_length=100)
variable5 = models.CharField(max_length=100)
id = models.AutoField(primary_key=True)
def some_function(self):
self.variable1 = self.variable2 + self.variable3 + self.variable4 + self.variable 5
return self.variable1
所以,当我运行代码覆盖率,这个问题我碰上是,尽管我告诉覆盖面明确地排除任何字符串“= models”,它仍然表示通过命令行给出的报告中缺少这些行。这使得很难确定哪些线路实际上未能覆盖我的测试用例。任何人都可以提供一些见解吗?
如何运行测试并且不运行模型定义行?如果报道说他们没有运行,那么你可能运行的覆盖范围是错误的,它开始测量的时间太晚了。你试图排除“来自”是另一个同样问题的迹象。不要试图排除这些线。尽早运行覆盖。看到这个答案:http://stackoverflow.com/a/30653523/14343 –
好,以便解决问题。我很欣赏与其他问题的联系。 –