.net-core - openCover 报告意外的低覆盖率
问题描述
我有以下代码:
var isDuplicateCategoryIds = _query.Categories
.GroupBy(x => x.Id)
.Any(g => g.Count() > 1);
我有两个调用此代码的测试,一个有重复的 Id,一个没有。
然而,openCover(在我们的 CI 服务器上使用)报告:
部分被测试覆盖(44 个条件中的 16 个)。
在本地,dotCover 报告 100%。
据我了解,openCover 使用 IL 中生成的分支和条件,该语句的 IL 为以下 24 行(已删除命名符号):
IL_0001: ldarg.0 // this
IL_0002: ldfld
IL_0007: callvirt
IL_000c: ldsfld
IL_0011: dup
IL_0012: brtrue.s IL_002b
IL_0014: pop
IL_0015: ldsfld
IL_001a: ldftn
IL_0020: newobj
IL_0025: dup
IL_0026: stsfld
IL_002b: call
IL_0030: ldsfld
IL_0035: dup
IL_0036: brtrue.s IL_004f
IL_0038: pop
IL_0039: ldsfld
IL_003e: ldftn
IL_0044: newobj
IL_0049: dup
IL_004a: stsfld
IL_004f: call
IL_0054: stloc.0
我的问题是如何在这里获得报道?
顺便说一句:尝试这样做是否值得?我进行了涵盖此代码所涉及的两种情况的测试;骗子,没有骗子。在此之前执行的代码会检查是否Categories
为空/空,并且在这种情况下不会调用此代码。因此,如果在幕后产生的其中一些条件是为此(我不知道它们是),这是一个有争议的问题。
解决方案
推荐阅读
- android - 当用户允许权限时,我在 onRequestPermissionsResult 中授予权限的函数没有调用
- python - 如何按列中的值分组,查找空值,然后替换
- javascript - 圆环图:显示里面的百分比
- testing - DerivedData 中缺少 TestSummeries.plist 文件
- microsoft-graph-api - 在 Azure AD 中获取设备的注册或创建日期
- python-3.x - 如何使用python根据某些条件选择命令输出的特定部分
- google-cloud-platform - 如何在谷歌云引擎上的python虚拟环境中连续运行
- node.js - 如何使用 .env Nodejs 设置 NODE_PATH
- extjs - 如何允许文本框在 extjs 中只取数字
- android - 将版本升级到 0.60.4 后 React Native TypeError