我有一堂课,并为此做了一些测试。 Coverage可以正常运行,但是报告包含return
的行未执行。多行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
也没有运行,因此不是多行字符串的格式。
答案 0 :(得分:0)
我最终通过安装django_nose
并运行python manage.py test --with-coverage --cover-package=app
来解决了这个问题。
我不完全确定为什么运行coverage
会直接产生不正确的结果,但是我认为这是由于django_nose
能够理解的Django怪异之处。