问题标签 [function-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 回答
7807 浏览

system-verilog - 覆盖系统verilog中的动态覆盖点

在这段代码中,我需要使用与受尊重的 num_ns 结构相关联的范围来覆盖 slba。

但在此代码中,范围将仅根据 num_ns[0] 进行划分。

那么如何根据采样时间的变量值重用相同的覆盖点来生成动态范围呢?

0 投票
1 回答
1254 浏览

code-coverage - 使用增量值在 System Verilog 中定义 Coverage Bin

我正在尝试使用 systemverilog 为大覆盖区域定义覆盖范围。例如,我想定义一个从 开始,在24'h000000结束24'h001ff0,并以 为增量的覆盖区24'h000008。到目前为止,我已经尝试过了;但是,它不会编译。

这给出了一个语法错误:syntax error: token is ':'.

有没有办法避免必须明确写出所有覆盖点?我知道我可以用 定义一个 bin {24'h000000:24'h001ff0},但这包含我不希望包含的点。

0 投票
3 回答
721 浏览

system-verilog - How to cover latency between request and response

Let's say we have a protocol where request req is asserted with req_id and corresponding rsp will be asserted with rsp_id. These can be out of order. I want to cover the number of clks or latency between req with particular req_id and rsp with the same id. I tried something like this. Is this correct way of doing? Is there any other efficient way?

0 投票
1 回答
456 浏览

symfony - PhpUnit + Symfony:为什么覆盖率显示为白色而不是红色,并且在未经测试的类上给出 100%?

我有一个问题,我创建了一个空项目来重现使其可重复的最小情况。

问题

具有未经测试的类的项目提供 100% 的覆盖率。有问题的方法不是从其他地方间接调用的。尽管在测试另一个类时会间接调用未测试类的其他方法。

如何重现

第 1 步:创建一个空的新 symfony 项目。

  • 我用这个命令创建了一个新的 symfony 3.3 项目:symfony new coverage_trial_to_be_deleted

结果:如果我运行,vendor/bin/simple-phpunit --coverage-html coverageReport我得到一个经过全面测试的项目,正如预期的那样,因为示例包含一个默认控制器的默认测试。

步骤2:删除控制器并创建两个命令,但不要覆盖它们。

  • 然后,我通过删除完整src/Controller目录、控制器测试以及应用程序配置中对该目录的引用来消除控制器。
  • src/Command然后我用 2 个命令创建一个目录:DummyACommand.phpDummyBCommand.php.
  • 然后我创建了一个愚蠢的测试,它执行一个assertTrue( true );有一些事情要报告,但根本不调用命令。

结果:这工作正常。然后它在目录上报告 0% Command,如下所示:

所有命令部分的结果

特别是在里面,Command我可以看到 0% 的 2 个命令,这是正常的:

0% 时的命令

最后,如果我输入第二个命令,即“B”命令,例如DummyBCommand,我仍然可以看到既没有涵盖 theconfigure()execute()没有涵盖方法,并且正如预期的那样,我看到每个方法上都有一个红色区域:

B指挥部报告

到这里为止,一切都按预期工作。

第 3 步:仅为命令 A 添加测试,不测试命令 B。

然后我添加一个新的测试,命名DummyACommandTest.php为以下内​​容:

正如预期的那样,测试发出绿灯,因为它调用 DummyACommand 并执行它,然后检查输出,它确实包含预期的内容:

测试通过绿灯

它说 2 个测试,因为assertTrue( true );它仍然存在。

结果:现在,如果我查看 DummyBCommand 的覆盖范围,我应该会看到configure()覆盖的方法,因为测试 A 的事实调用了 a$application->find( 'dummy:a' );并且我猜它探索了所有命令。

我真的不太明白这一点,因为我只做$application->add( new DummyACommand() );而且我不知道什么时候dummy:b加载,但无论如何让我们给这个假设一个机会。

所以我不介意看到configure()绿色(下图中的注释[1])。

但我不喜欢的是,execute()B 的 不是以红色出现(没有人称该执行,应该完全像在步骤 2 中出现),而是以白色出现!!!:| 就像这里的注释[2]

现在命令 2 有一个白色部分而不是红色部分

所以出于某种原因......测试命令 A 使 PHPUnit 改变了它对命令 B 中“潜在可执行”的考虑,我不明白为什么。

这使得整个项目被报告为 100% 测试,虽然它是错误的,就像在这里:

完整报告显示错误的覆盖率指示

但是当然这个信息并不能反映现实:execute()命令B的方法没有被覆盖,也没有被执行。

我希望报告能告诉我 75% 的线路覆盖率(4 个中的 3 个)和 50% 的类覆盖率(2 个中的 1 个)。

所以...问题:

为什么 PhpUnit 在为 A 类添加测试时改变了对 B 类中潜在可执行代码的考虑?

如何指示 PhpUnit 将 B 视为未覆盖?

谢谢!哈维。

0 投票
2 回答
12576 浏览

code-coverage - 如何在 Questasim 中生成功能覆盖率的详细报告?

如何生成功能覆盖率的详细覆盖率报告?我正在使用以下命令来模拟我的代码:

我无法在报告中看到封面组的详细信息。

0 投票
0 回答
16 浏览

python-2.7 - 我们可以将覆盖率报告限制为明智的功能,而不是整个 python Unittest 脚本中覆盖的行吗

在此处输入图像描述

我想为所有 .py 文件生成覆盖率报告,当我在 python2.7 中使用覆盖率模块时执行下面的脚本(如图所示)时运行,我得到报告作为从这些 .py 文件执行的行但是我只需要从这些 .py 文件中执行多少个函数,而不是执行多少行

在此处输入图像描述

0 投票
1 回答
54 浏览

verilog - 如何实现非连续采样点的过渡覆盖?

var_1从值 0 变为 1,然后从 1 变为 2,依此类推直到 15,但不是在连续的采样点上。我在每个时钟周期进行采样,但值可能会在一些任意clk周期后发生变化。我写的过渡覆盖不起作用。我们可以为这种情况编写转换覆盖吗?

我看到var_1_bin100% 被覆盖,但var_1_trans_bin.

这是整个代码: