【问题标题】:How to know the coverage for the django application ?如何知道 django 应用程序的覆盖范围?
【发布时间】:2011-11-23 09:35:03
【问题描述】:

我有一个包含一些应用程序的简单 django 项目。一切正常。现在我如何检查我的项目的代码覆盖率。我已经安装了coverge-3.5 工具,只是试图通过键入“覆盖率报告”来了解覆盖率终端..它显示了一些类似的结果

NAME ----->(我项目中的某个文件)

STMS ----->(一些数字)

MISS ----->(一些数字)

封面----->(一些百分比)

在我的情况下,它会显示一些结果,只显示我项目中的一些文件名。它没有显示我项目中所有文件的覆盖范围。我如何让它显示我所有的文件名????

如果你知道,请推荐任何更好的工作覆盖工具!

【问题讨论】:

    标签: python django code-coverage


    【解决方案1】:

    我设法用 django_coverage 和 django_nose 解决了这个问题

    我添加到 INSTALLED_APPS 'django_coverage' 和 'django_nose'

    在 settings.py 上使用这个

    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
    
    # Tell nose to measure coverage on the 'foo' and 'bar' apps
    NOSE_ARGS = [
        '--with-coverage',
        '--cover-package=schedule',
    ]
    

    安装它

    pip install django_coverage

    如何使用它?

    安装为 Django 应用 放置整个:

    第三方应用目录中的 django_coverage 应用。

    更新您的 settings.INSTALLED_APPS 以包含 django_coverage。

    在您自己的设置文件中包含特定于测试覆盖率的设置。

    查看 settings.py 了解更多详情。完成所有步骤后, 您将通过 manage.py test_coverage 获得一个新的自定义命令。

    它就像 manage.py 测试一样工作。

    将其用作测试运行器

    如果您不想安装 django_coverage 作为应用程序,则不必安装。你可以 如果您愿意,只需使用测试运行器。 更新 settings.TEST_RUNNER = 'django_coverage.coverage_runner.CoverageRunner' 包括测试覆盖率 您自己的设置文件中的特定设置。有关更多信息,请参见 settings.py 细节。像往常一样运行 manage.py test。

    【讨论】:

      【解决方案2】:

      我只是让它像这样工作:

      coverage run --source=app1,app2 ./manage.py test --settings=path.to.test_settings app1,app2
      

      我认为这不是预期的方法,因为我们根本不使用 ./manage.py test_coverage 命令,但我找不到任何其他方法。

      【讨论】:

      • 我也让它像这样工作:coverage run --include=usermanager/*,witness/* --omit=.env/*,*/migrations/*,*/__init__.py,*/tests.py,*/models.py,manage.py ./manage.py test usermanager witness --settings=digichainOpen.settings
      【解决方案3】:

      首先确保您使用的是最新的覆盖范围版本。比你能做的: 假设您的 django 项目位于 project_parent/project 下,从 project_parent 运行:

      coverage html --include=project/*.*
      

      这只会为您提供项目的覆盖率报告(即不输出第 3 方库覆盖率)

      【讨论】:

      • 感谢您的回复。我正在使用coverage 3.5。如果我从相应的路径运行coverage html --include=myproject/*.*,它会返回“No data to report”!!!跨度>
      • 尝试使用路径(它在我使用它的项目中对我来说是这样的)但我记得如何使用 --include 进行路径并没有很好的记录。
      • 它对我不起作用..但是我使用“coverage run manage.py test”来运行我所有的项目测试用例,然后我将使用“coverage report”来查找覆盖率报告。它有效好吧。但它也输出第 3 方库覆盖率。。不要单独显示我的项目测试用例的覆盖率!!!
      猜你喜欢
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 2011-07-05
      • 2018-10-14
      • 1970-01-01
      相关资源
      最近更新 更多