范围正在跳过返回语句

时间:2019-04-22 11:04:28

标签: python django testing nose

我有一堂课,并为此做了一些测试。 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也没有运行,因此不是多行字符串的格式。

1 个答案:

答案 0 :(得分:0)

我最终通过安装django_nose并运行python manage.py test --with-coverage --cover-package=app来解决了这个问题。

我不完全确定为什么运行coverage会直接产生不正确的结果,但是我认为这是由于django_nose能够理解的Django怪异之处。