问题标签 [coverage.py]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
299 浏览

google-app-engine - 是否可以向 GAEUnit 添加代码覆盖支持?

一年多来,GAEUnit 要求的功能之一是支持代码覆盖率。在技​​术上是否可以为 GAEUnit 添加覆盖支持,以便在测试完成后生成一份报告,说明测试了哪些模块以及每个模块的覆盖范围是多少?

我可以使用coverage.py 启动dev_appserver 并生成GAE python 应用程序的覆盖率报告,但这需要本地系统配置。gaeunit 的优点之一是能够轻松地将其作为应用程序添加到任何 python gae 应用程序中,以便任何下载该应用程序的人都可以运行包含的测试。我的理想方案只是扩展 gaeunit 并将覆盖数据添加到报告的底部。因此,理想情况下,修改将像 gaeunit 一样在 dev_appserver 中作为应用程序运行。

这在技术上可行吗?你会推荐什么方法?

0 投票
1 回答
592 浏览

python - 为什么coverage.py 不检查某些Python 文件?

我正在使用coverage.py 来测量Python 项目中的测试覆盖率,但是一些Python 文件没有显示在覆盖率报告中。这些文件的不同之处在于它们没有被任何测试执行(即,如果它们包含在报告中,它们的覆盖率将为 0%)。

未检查这些文件的可能原因是什么?如果是因为在单元测试期间从未加载过它们,是否可以强制 coverage.py 将这些文件包含在报告中?

0 投票
1 回答
1011 浏览

python - Python 在覆盖和鼻子下运行时看不到子模块

当我使用coverage.py 运行一系列测试时出现导入错误,其中nose 是底层测试运行器。如果我只是在 Python 下运行,测试运行良好。

这似乎不是路径错误,而是当我通过执行“覆盖运行”运行测试时,“nova”模块的子模块似乎不可见。我通过将以下代码添加到失败的方法中发现了这一点:

当我运行它时python run_tests.py,我看到以下输出:

但是,当我将其作为 运行时coverage run run_tests.py,我会看到以下输出:

似乎它在每种情况下都在同一个地方找到了 nova 模块,但是在我覆盖运行它的情况下,Python 看不到大多数子模块:(auth,compute,...)console。

请注意,当我为鼻子使用覆盖插件时,不会发生此问题,但在这种特殊情况下,我不想使用该插件。

0 投票
2 回答
2529 浏览

python - eclipse中的错误,导入覆盖时?

在 mac 终端

测量、收集和报告 Python 程序中的代码覆盖率。

在eclipse中,我遇到如下错误:请帮忙

0 投票
1 回答
1442 浏览

python - django 调试服务器的代码覆盖率

我正在使用http://nedbatchelder.com/code/coverage/中的 coverage.py 来获取我的 django 单元测试的覆盖率数据,但我似乎无法弄清楚如何在 django 调试服务器上运行覆盖率。我想使用以下命令运行 django 服务器:

并且在停止此服务器时,我应该获取可以生成覆盖率报告的覆盖率数据。但是在使用 CTRL-c 关闭服务器时,我得到了

^Ccoverage.py 警告:未收集数据。

如果无法使用此 coverage.py 脚本,我已准备好使用任何其他工具。

更新:

使用 --noreload 它似乎确实有效,但是在生成 html 覆盖率报告时我得到以下堆栈跟踪:

0 投票
2 回答
3243 浏览

python - 查找未使用的 Django 代码以删除

我已经开始从事一个项目,其中包含大量未使用的遗留代码。我想知道是否可以将覆盖率之类的工具与爬虫(例如 django-test-utils 之一)结合使用来帮助我找到没有被命中的代码,我们可以用弃用警告进行标记。我意识到这样的事情不会万无一失,但认为它可能会有所帮助。

我试过用 django 调试服务器运行 coverage.py,但它不能正常工作(它似乎只是分析了 runserver 机器而不是我的视图等)。

我们一直在提高我们的测试覆盖率,但还有一条路要走,我认为可能有更快的方法。

有什么想法吗?

谢谢。

0 投票
1 回答
2773 浏览

python - 为什么coverage.py 不能正确测量Django 的runserver 命令?

我应该知道这个问题的答案,但我不知道:如果您尝试像这样测量 Django 项目的覆盖率:

你得到的覆盖率测量错过了你所有的实际代码。过程早期的某些事情是停止测量,或者所有实际工作都发生在一个根本没有被测量的新环境中。

有人可以指出过程中测量失败的特定点,以便我可以尝试修复coverage.py,以便它可以按照人们期望的方式正确测量它?

0 投票
4 回答
13122 浏览

python - Coverage.py Python 模块 - 运行脚本时导入错误

我无法让 Python 的“覆盖”模块正常工作。

我无权修改或添加到 Python 目录,因此无法安装 easy_install 来设置覆盖范围。

通过将覆盖目录添加到我的 python 路径来解决此问题。覆盖工作正常,输入coverage --version到 shell 输出版本。coverage help显示所有可用的命令。一切似乎都很好。

我可以在小的简单脚本上很好地运行覆盖。

但是,当运行具有跨 5 个模块的大量导入的大型脚本时(已测试为工作的脚本),当使用 运行命令时coverage run [normal commands],脚本执行并失败,因为找不到某些模块。

这是一个细分:

没有覆盖的命令行(工作正常):

我通过运行调用脚本:./script_name.py arg1 arg2 arg3

当我尝试通过输入:运行脚本时python script_name.py arg1 arg2 arg3,脚本失败,无法导入模块:

覆盖范围的命令行:

现在我们正在取得进展。覆盖显然被调用并工作,但我得到那个导入错误:

0 投票
3 回答
18058 浏览

python - 在 Python coverage.py API 中使用省略标志

我正在使用 python coverage.py 创建一个非常基本的覆盖测试套件。目前一切都很好。但是,我的覆盖率报告包括所有/usr/local/lib被调用的库和所有__init__.py文件。

这是我的报道报告电话现在的样子:

目标是使用 omit 标志删除所有带有单词“Test”、“/usr/local/lib”或“__init__”的类。由于我在网上找不到太多关于 API 的信息(有很多关于如何在命令行上执行此操作的信息),有人知道使这项工作的正确语法是什么吗?

0 投票
3 回答
8661 浏览

python - 从覆盖报告中排除抽象属性

我有一个抽象基类:

但是当我在我的项目上运行nosetests(覆盖范围)时,它抱怨属性def行未经测试。它实际上无法测试(AFAIK),因为抽象类的实例化将导致引发异常。

是否有任何解决方法,或者我只需要接受 < 100% 的测试覆盖率?

当然,我可以删除这种ABCMeta用法并简单地使用基类 raise NotImpementedError,但我更喜欢前一种方法。