我有一个类(class)和一些测试。 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
也没有运行,所以它不是多行字符串的格式。
最佳答案
我最终通过安装 django_nose
并使用 python manage.py test --with-coverage --cover-package=app
运行解决了这个问题。
我不完全确定为什么直接运行 coverage
会给出不正确的结果,但我认为这是因为 django_nose
理解的 Django 中有些奇怪的东西。
关于python - 覆盖范围是跳过返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55793360/