问题标签 [code-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 投票
4 回答
4213 浏览

java - EMMA 不会涵盖我的一个项目

我对 EMMA 有一个问题,它正确地涵盖了我所有的各种 Java 项目,除了一个。我很困惑为什么会发生这种情况,因为 ANT 脚本似乎是正确的。给出以下预期输出:

以上是由以下 ANT 脚本生成的:

运行 JUnit 测试后,将记录以下内容。

emma.report:[report] 处理输入文件 ...
[report] 1 个文件在 16 毫秒内读取和合并
[report] 无所事事:在任何数据文件中都找不到运行时覆盖率数据

并且不会生成覆盖率报告。

我确定coverage.emma 文件已正确链接,那么为什么EMMA 没有覆盖代码?

emma.report任务如下所示:

0 投票
2 回答
1695 浏览

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

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

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

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

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

0 投票
3 回答
4911 浏览

c++ - Windows 上本机 C++ 应用程序中的自动死代码检测?

背景

在几年的时间里,我有一个用原生 C++ 编写的应用程序,大约 60 KLOC。有许多死掉的函数和类(可能有 10-15% 类似于下面提出的基于 Unix 的类似问题)。我们最近开始对所有新代码进行单元测试,并尽可能将其应用于修改后的代码。但是,我会制作一个 SWAG,我们目前的测试覆盖率不到 5%。

假设/约束

方法和/或工具必须支持:

  • 本机(即非托管)C++
  • 视窗
  • 视觉工作室 2005
  • 不得要求用户提供测试用例进行覆盖。(例如不能依赖单元测试来生成代码覆盖率)

如果这些方法支持的不仅仅是这些要求,那就太好了。

注意:我们目前使用 Visual Studio 2005 的专业版,而不是 Team System。因此,使用 Team System 可能是一个有效的建议(我不知道,我从未使用过它)但是我希望它不是唯一的解决方案。

为什么使用单元测试进行代码覆盖是有问题的

我相信通用工具不可能在任何零误报的任意应用程序中找到所有死的(例如无法访问的代码)(我认为这相当于停机问题)。但是,我也相信通用工具有可能找到许多类型的死代码,这些代码很可能实际上是死的,例如在代码中永远不会被其他任何东西引用的类或函数。

通过使用单元测试来提供这种覆盖率,您不再使用通用算法,从而增加了您可以检测到的死代码的百分比以及任何命中都不是误报的概率。相反,使用单元测试可能会导致误报,因为单元测试本身可能是执行给定代码的唯一方法。理想情况下,我会进行回归测试,使用所有外部可用的方法、API、用户控件等,这将作为代码覆盖率分析的基线测量,以排除某些方法是误报。然而遗憾的是,我目前没有这个自动化测试。

但是,由于我拥有如此庞大的代码库和如此低的测试用例覆盖率,因此我正在寻找可以提供帮助的东西,而无需花费大量时间来编写测试用例。

问题

您如何使用 Visual Studio 2005 开发环境在 Windows 平台上的本机 C++ 应用程序中以自动或半自动方式检测死代码?

也可以看看

遗留 C/C++ 项目中的死代码检测 我想告诉 VC++ 编译器编译所有代码。可以做到吗?

0 投票
2 回答
815 浏览

ant - 使用 Emma 和 Ant 设置覆盖阈值

我在我的 ant 构建中使用 Emma 来执行覆盖率报告。对于那些使用 Emma 的人,如果线路覆盖率(或任何类型的覆盖率统计)不满足特定阈值,是否有办法让构建失败?例如,如果线路覆盖率不是 100%

0 投票
7 回答
535 浏览

c# - 为单元测试做好编码准备的最佳策略

我有一个缺少很多代码覆盖率的解决方案。我需要重构此代码以解耦以开始创建单元测试。什么是最好的策略?我首先认为我应该推动将业务逻辑与来自业务对象的数据访问分离,以首先获得一些组织,然后从那里向下钻取。由于许多类不支持单一责任原则,因此很难开始测试它们。

是否有其他建议或最佳实践来采用遗留解决方案并将其成型以准备好进行代码覆盖和单元测试?

0 投票
1 回答
346 浏览

windows - Devel::Cover 在 Windows 的 Perl 5.10 上的 mod_perl2 下是否工作?

mod_perl2 和 Perl 5.10 两者配合得很好,但我似乎找不到任何关于在 Win32 下使用 mod_perl2 的Devel::Cover的正面信息。我目前正在使用 ActiveState 的 Perl 5.10,但如果这意味着这种组合可以工作,我愿意切换到 Strawberry Perl。

此外,来自 ActiveState、Bribes、UWinnipeg 或 Trouchelle 的 Perl 5.10 似乎无法使用 Devel::Cover PPD,因此,如果您能够使其工作,那么您通过哪些步骤来运行成功的 make ?

0 投票
3 回答
47545 浏览

c# - 如何在单元测试中使用 Mock Objects 并仍然使用代码覆盖率?

目前我开始将 Mock 对象的概念引入到我的单元测试中。特别是我正在使用 Moq 框架。然而,我注意到的一件事是,我正在使用这个框架测试的类突然显示代码覆盖率为 0%。

现在我明白了,因为我只是在模拟这个类,它本身并没有运行实际的类......但是我如何编写这些测试并让代码覆盖率返回准确的结果?我是否必须编写一组使用 Mocks 的测试和一组直接实例化类。

也许我在没有意识到的情况下做错了什么?

这是我尝试对名为“MyClass”的类进行单元测试的示例:

有谁知道我应该做些什么不同的事情?

0 投票
6 回答
37113 浏览

php - PHP 的代码覆盖率工具

是否有任何可用于 PHP 的代码覆盖率工具?我希望检查我的代码和用 PHP 编写的 API 的代码覆盖率,但我无法使用任何 PHP 代码覆盖率工具,因为它更像是一种服务器端语言并且本质上是动态的。

有谁知道可以执行 PHP 代码覆盖的方法?

0 投票
2 回答
468 浏览

automated-tests - 代码覆盖率通用函数/参数?

我正在为我的应用程序处理一些代码覆盖率。现在,我知道代码覆盖率是一项与您创建的测试类型和您希望为其进行代码覆盖率的语言相关联的活动。

我的问题是:有没有可能的方法来做一些通用代码覆盖?就像在中一样,我们是否可以拥有一组功能/测试用例,可以运行(以及针对被测应用程序的更具体的测试)以获得 10% 或更多代码的代码覆盖率?

更像是,如果我想为代码覆盖构建一个框架,那么制作通用框架的最佳方法是什么?是否有可能使某些功能自动化或通用化?

0 投票
4 回答
2657 浏览

c - C中的代码覆盖率

我希望在 C 中进行代码覆盖。当我在不同的平台/编译器上工作时,我不能依赖像 gcov 这样的工具。

基本上,我正在寻找一种将代码覆盖率纳入我(自己的实现)单元测试框架的策略。