我有一个班级和一些测试。 Coverage运行一切都很好,但报告包含return
的行未执行。多行返回语句的其余部分执行得很好,而不是返回本身。
类:
class Game(models.Model):
...
def __str__(self):
return (
f'Name: {self.name}\n'
f'Status: {self.status}\n'
)
def render_html(self):
return (
f'Name: {escape(self.name)}<br/>'
f'Status: {escape(self.status)}<br/>'
)
该测试称为render_html
和__str__
。我正在使用Django和coverage run --branch ./manage.py test
一起运行
编辑:我稍后在同一个文件中有另一个测试,它有一个简单的return somestring
也没有运行,所以它不是多行字符串的格式。
我最终通过安装django_nose
并使用python manage.py test --with-coverage --cover-package=app
运行来解决这个问题。
我不完全确定为什么直接运行coverage
给出了不正确的结果,但我认为这是因为Django中奇怪的东西django_nose
理解。