python - 覆盖范围是跳过返回语句

标签 python django testing nose

我有一个类(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/

相关文章:

Python:记录到多个日志文件

python - 与 Wordpress 一起部署 Django 应用程序(在 suburl)

python - 并行处理时 Python 和 Fabric 1.x 出现错误

Django x-www-form-urlencoded 请求

testing - 今天用于测试固件的可用软件工具有哪些?

python - 将此函数绘制为累积分布图

python - 如何在 Django 中渲染单个 View 时将一个模型中的字段用于另一个模型

python - 如何使用 django-pipeline 指向 dockerized Django 项目中的 Node?

c# - 使用 NUnit 自动测试 WPF 应用程序

spring-boot - TestRestTemplate 与 WebTestClient 与 RestAssured : What is the best approach for integration testing of Spring Boot Rest API