Покрытие пропускает возвратные заявления - PullRequest
1 голос
/ 22 апреля 2019

У меня есть класс и несколько тестов для него. 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, который также не запускается, так что это не форматирование многострочных строк.

1 Ответ

0 голосов
/ 22 апреля 2019

Я решил эту проблему, установив django_nose и запустив python manage.py test --with-coverage --cover-package=app.

Я не совсем уверен, почему запуск coverage напрямую дает неверные результаты, но я предполагаю, что это из-за чего-то странногов Джанго, который django_nose понимает.

...