问题标签 [python-coverage]

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 投票
2 回答
1695 浏览

python - 将命令行生成的 python .coverage 文件与 PyDev 集成

我的构建环境配置为在命令行编译、运行和创建覆盖文件(使用 Ned Batchelder coverage.py 工具)。

我使用 Eclipse 和 PyDev 作为我的编辑器,但出于实际原因,我不可能/不方便将整个构建环境转换为 Eclipse(因此直接从 IDE 生成覆盖数据,因为它的设计目的是这样做)

PyDev 似乎使用相同的覆盖工具(或与之非常相似的工具)来生成它的覆盖信息,所以我猜应该有某种方法可以将我的外部覆盖文件集成到 Eclipse/PyDev 中。

关于如何做到这一点的任何想法?

0 投票
1 回答
1006 浏览

python - 在某些 python 结构中运行单元测试和覆盖

我有一些有趣的菜鸟问题。

我尝试从命令行运行单元测试:

当我尝试在所需文件夹中运行它时也会发生这种情况:

H:\PRO\pyEstimator\src\test\python>python test_power_estimator.py

我的文件夹结构如下所示。

也许我没有看到明显的东西。我也尝试进行报道。这种方法好吗(文件结构)?

0 投票
1 回答
814 浏览

python - 使用 Python 和 Coverage 构建 Hudson 失败

我完成了 Joe Heck 的本教程,为Python设置Hudson。除了覆盖部分,一切都运行良好。我的构建失败,输出如下:

我试图包含 Execute 参数 -x,但得到了一个最终由权限失败引起的异常:

有没有人让CoverageHudson成功合作?

0 投票
2 回答
508 浏览

python - 如何确保对我的大型 Python 项目进行良好的测试覆盖

我有一个非常大的 python 项目和一个非常大的测试套件。最近我们决定量化我们的测试覆盖的质量。

我正在寻找一种工具来自动生成测试覆盖率报告。理想情况下,我希望有有吸引力的、易于阅读的报告,但如果我能让它快速运行,我会接受不太吸引人的报告。

我试过 Nose,但不够好:它与分发 / setuptools 的命名空间包功能不兼容。不幸的是,鼻子覆盖永远不会对我们有用,因为我们充分利用了这个功能。这真是太可惜了,因为鼻子在哈德逊似乎工作得很好(大部分)

作为替代方案,我听说有一种方法可以在 Eclipse 中进行 Python 覆盖分析,但我还没有完全锁定完美的技术。

欢迎任何建议!

仅供参考,我们在 Windows XP 32 位上使用 Python 2.4.4

0 投票
2 回答
501 浏览

python - 我的 Python 测试套件文件覆盖率何时不是 100%?

我们使用 Hudson 和 coverage.py 来报告我们测试套件的代码覆盖率。哈德森将报道分为:

  • 文件
  • 班级
  • 线条
  • 条件句

Coverage.py 仅报告测试期间执行/导入的文件的覆盖率,因此它似乎忽略了测试期间执行的任何文件。是否存在文件不会报告 100% 覆盖率的情况?

0 投票
1 回答
3908 浏览

python - 鼻子测试覆盖范围,包括 Python 包

我正在使用鼻子测试来运行一些单元测试,并使用以下内容向我展示我们的代码覆盖率:

这很好用,除了我在输出中看到一堆 Python 包。这是一个示例:

如何排除这些包?

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 投票
1 回答
1432 浏览

python - 让 Python 的 coverage.py 收集导入它的模块的覆盖率?

我一直在玩coverage.py,但似乎无法让它为__main__模块收集覆盖范围。

我在 Windows 上,喜欢使用 IDLE 破解脚本。edit-hit-F5 循环非常方便、快速、有趣。不幸的是,coverage.py 似乎不能(或愿意)收集主模块的覆盖率——在下面的代码中,它报告没有收集任何数据。我的代码如下所示:

有人有想法么?我尝试了各种覆盖选项,但无济于事。似乎 IDLE 创建的环境对覆盖不是很友好,因为sys.modules['__main__']指向 idle.pyw 文件,而不是它正在运行的文件。

0 投票
1 回答
2171 浏览

python - Python:运行覆盖范围的鼻子测试时出现 AssertionError

我对 python 测试相当熟悉,所以这可能是我做错了..

当我运行我的测试时,测试运行器工作正常并且覆盖范围也......但在两者之间我得到一个断言错误:

为了让事情变得更加困难,我正在尝试测试一个命令行实用程序。这意味着我必须告诉覆盖范围以覆盖子流程调用。

我想我让这部分工作了,因为覆盖率现在报告正在运行的脚本的覆盖率百分比。但是由于我得到了覆盖工作,所以我无法摆脱 AssertionError。

一些帮助理解出了什么问题将不胜感激。我所有的代码都可以在 github 上找到:

快速运行:

谢谢

更新

我在另一台计算机上运行了测试,得到了相同的 AssertionError .. 加上一个新的 TypeError。测试再次正确运行,即使出现这些错误,覆盖率似乎也能正常工作。

0 投票
2 回答
1286 浏览

python - 更改 Ned Batchelder 的覆盖工具的默认 python 版本

标题几乎说明了这一点。我在将unittestpython 从 python 2.5 更改为 2.7 时遇到问题。当我用 python 运行我的测试脚本时

它工作正常。但是当我尝试使用覆盖工具时

它崩溃说这assertRaisesRegexp不是我的子类的属性TestCase。我发现这是因为覆盖工具使用的是 python 2.5 并且unittest.TestCase.assertRaisesRegexp在 2.5 中不存在。

无论如何,有人可以告诉我如何更改覆盖使用的 python 吗?

编辑:用于覆盖的彩蛋在 /Library/Python/2.5/site-packages 中。这有关系吗?