问题标签 [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.
system-verilog - 覆盖系统verilog中的动态覆盖点
在这段代码中,我需要使用与受尊重的 num_ns 结构相关联的范围来覆盖 slba。
但在此代码中,范围将仅根据 num_ns[0] 进行划分。
那么如何根据采样时间的变量值重用相同的覆盖点来生成动态范围呢?
code-coverage - 使用增量值在 System Verilog 中定义 Coverage Bin
我正在尝试使用 systemverilog 为大覆盖区域定义覆盖范围。例如,我想定义一个从 开始,在24'h000000
结束24'h001ff0
,并以 为增量的覆盖区24'h000008
。到目前为止,我已经尝试过了;但是,它不会编译。
这给出了一个语法错误:syntax error: token is ':'
.
有没有办法避免必须明确写出所有覆盖点?我知道我可以用 定义一个 bin {24'h000000:24'h001ff0}
,但这包含我不希望包含的点。
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?
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.php
和DummyBCommand.php
.- 然后我创建了一个愚蠢的测试,它执行一个
assertTrue( true );
有一些事情要报告,但根本不调用命令。
结果:这工作正常。然后它在目录上报告 0% Command
,如下所示:
特别是在里面,Command
我可以看到 0% 的 2 个命令,这是正常的:
最后,如果我输入第二个命令,即“B”命令,例如DummyBCommand
,我仍然可以看到既没有涵盖 theconfigure()
也execute()
没有涵盖方法,并且正如预期的那样,我看到每个方法上都有一个红色区域:
到这里为止,一切都按预期工作。
第 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]
:
所以出于某种原因......测试命令 A 使 PHPUnit 改变了它对命令 B 中“潜在可执行”的考虑,我不明白为什么。
这使得整个项目被报告为 100% 测试,虽然它是错误的,就像在这里:
但是当然这个信息并不能反映现实:execute()
命令B的方法没有被覆盖,也没有被执行。
我希望报告能告诉我 75% 的线路覆盖率(4 个中的 3 个)和 50% 的类覆盖率(2 个中的 1 个)。
所以...问题:
为什么 PhpUnit 在为 A 类添加测试时改变了对 B 类中潜在可执行代码的考虑?
如何指示 PhpUnit 将 B 视为未覆盖?
谢谢!哈维。
code-coverage - 如何在 Questasim 中生成功能覆盖率的详细报告?
如何生成功能覆盖率的详细覆盖率报告?我正在使用以下命令来模拟我的代码:
我无法在报告中看到封面组的详细信息。
verilog - 如何实现非连续采样点的过渡覆盖?
var_1
从值 0 变为 1,然后从 1 变为 2,依此类推直到 15,但不是在连续的采样点上。我在每个时钟周期进行采样,但值可能会在一些任意clk
周期后发生变化。我写的过渡覆盖不起作用。我们可以为这种情况编写转换覆盖吗?
我看到var_1_bin
100% 被覆盖,但var_1_trans_bin
.
这是整个代码: