问题标签 [opencover]
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.
mstest - 为什么带有 MSTest 的 Opencover 不执行并显示“访问被拒绝”?
我正在使用 MSTest 的开盖。我是一个新用户,并试图掌握 Opencover。我已尝试使用 MSTest,MSTest 在 Vs2010 中的新项目中运行良好。当我使用 MStest 执行以下测试时,它工作正常:
MS Test 的命令行运行:
结果:
但是当我执行以下命令时,我得到以下结果:我发布了我尝试过的所有组合:
访问被拒绝。
访问被拒绝。
访问被拒绝。
mstest - ReportGenerator 中的总行数构成什么?
我正在使用开源工具ReportGenerator
来显示使用OpenCover
和生成的 XML 输出的详细信息mstest
。对于一个特定项目,我看到以下指标:
- 覆盖线:3611
- 未覆盖线:3587
- 可覆盖线路:7198
- 总行数:35609
好的,Covered + Uncovered = Coverable lines
这是有道理的。但是Total lines
明显高于这个值,我想知道是什么构成或定义了所有这些额外的代码行来组成Total lines
。
的文档ReportGenerator
充其量是稀疏的,但我猜它包含注释、空格、using
语句(用于导入命名空间)、方法声明、类等不可测试的内容。但是我不确定,我计划在很多项目中使用这个工具,并且需要能够解释这个数字背后的原因。
有谁知道或可以解释Total lines
超出总可测试行的值是由什么组成的?
white-framework - 从 OpenCover 覆盖率报告中删除 .Designer.cs 文件
我正在使用White框架针对我的应用程序用户界面编写测试。然后我使用 OpenCover 运行它们并使用 ReportGen 创建测试覆盖率报告。
我对结果的唯一抱怨是我的报告结合了两者MyForm.cs
,并且MyForm.Designer.cs
在生成报告时包含了多少 MyForm 类。我的问题是,如果任何测试触及 MyForm 那么所有代码在.Designer.cs
文件被添加到报告中(这些文件只包含一个自动生成的方法来创建由构造函数触发的所有控件)。该文件的内容只是样板文件,不包含任何有用的逻辑。然而,特别是在很薄的类中,这个文件最终可能会占到类中总代码的很大一部分。尽管我的测试很少或根本没有接触到任何可以从测试中受益的代码,但这会导致类显示出高水平的覆盖率。(例如测试“显示我的表单”按钮创建了一个“我的表单”对话框将导致所有内容MyForm.Designer.cs
被列为已覆盖,但不会实际测试 MyForm 类中的任何 UI 逻辑。)
OpenCover的-filter
参数仅适用于类/命名空间级别;所以我不能使用它们来仅排除设计器文件的内容(或其中的 InitializeComponents 函数)。有没有其他方法可以过滤用于生成报告的代码以将其从输出中排除?
nunit - 使用 Gallio 测试失败但使用 nunit-console.exe 通过
我正在为一个项目使用声纳分析。我无法获得代码覆盖率,因为当我使用 Gallio 运行时测试会出错。
如果我使用 nunit-console.exe 运行相同的单元测试,它们都通过了。(我在cmd的管理员模式下运行它)
但是当我用gallio运行它们时它们失败了。以前有人遇到过这个问题吗?
这就是我使用声纳加里奥跑步时得到的结果。
03:51:30.754 信息 - 101 运行,7 通过,94 失败(94 错误),0 不确定,0 跳过 03:51:30.754 信息 - 03:51:30.910 信息 - 提交... 03:51:31.238 信息 -访问过的课程 11 of 20 (55) 03:51:31.238 信息 - 访问过的方法 16 of 80 (20) 03:51:31.238 信息 - 访问过的点 66 of 519 (12.7167630057803) 03:51:31.238 信息 - 访问过的分支机构 7 of 122 (5.73770491803279) 03:51:31.238 INFO - 03:51:31.238 INFO - ==== 替代结果(包括所有方法,包括那些没有相应来源的方法)==== 03:51:31.238 INFO - 替代访问类 11 of 25 (44) 03:51:31.238 信息 - 替代访问方法 23 of 166 (13.855421686747) 03:51:31.488 信息 - 传感器 org.sonar.plugins.csharp.gallio.GallioSensor@964f8e 完成:22314 毫秒 03:51:31.488 信息- 传感器 ProfileSensor... 03:51:32.145 信息 - Sensor ProfileSensor 完成:657 毫秒 03:51:32.145 INFO - Sensor ProfileEventsSensor... 03:51:32.160 INFO - Sensor ProfileEventsSensor done: 15 ms 03:51:32.160 INFO - Sensor ProjectLinksSensor... 03:51:32.160 INFO - Sensor ProjectLinksSensor done: 0 ms 03:51: 32.160 信息 - 传感器 VersionEventsSensor... 03:51:32.176 信息 - 传感器 VersionEventsSensor 完成:16 毫秒 03:51:32.176 信息 - 传感器 org.sonar.plugins.csharp.gallio.TestReportSensor@412739... 03:51:32.957信息 - 传感器 org.sonar.plugins.csharp.gallio.TestReportSensor@412739 完成:781 毫秒 03:51:33.410 信息 - 执行装饰器...176 信息 - 传感器版本事件传感器完成:16 毫秒 03:51:32.176 信息 - 传感器 org.sonar.plugins.csharp.gallio.TestReportSensor@412739... 03:51:32.957 信息 - 传感器 org.sonar.plugins.csharp.gallio .TestReportSensor@412739 done: 781 ms 03:51:33.410 INFO - 执行装饰器...176 信息 - 传感器版本事件传感器完成:16 毫秒 03:51:32.176 信息 - 传感器 org.sonar.plugins.csharp.gallio.TestReportSensor@412739... 03:51:32.957 信息 - 传感器 org.sonar.plugins.csharp.gallio .TestReportSensor@412739 done: 781 ms 03:51:33.410 INFO - 执行装饰器...
当我从命令行使用 Nunit-console.exe 运行它时。我得到相同的结果。但是当我以管理员身份从命令行使用 Nunit-console.exe 运行它时。我得到以下输出:
测试运行:101,错误:0,失败:0,不确定:0,时间:27.3760719 秒未运行:0,无效:0,忽略:0,跳过:0
所以我认为我需要以 Sonar 的管理员身份运行这些测试。我怎么做?
我还尝试从(gallio)Icarus GUI Test Runner 作为管理员运行这些测试,并且所有测试都通过了。如果我以常规模式运行,它们不会通过。
code-coverage - 通过 NuGet 的解决方案特定 OpenCover 实例的预期使用模型是什么?
如果我通过 NuGet 将 OpenCover 安装到解决方案中,我会在例如 packages\OpenCover.4.5.1604 文件夹下获得预期的文件。但是,OpenCover 的分析器需要 COM 注册才能正常运行。我认识到可以使用-register
命令对这些进行运行时注册,但是在具有多个解决方案的机器上,可能安装了不同版本的 OpenCover(并且可能同时执行它们——例如,构建服务器),这似乎有问题。
作者本人的这个 SO 回答表明,regsvr32
在构建服务器上单独调用一次来注册分析器会更可取,这是有道理的。但是在通过 NuGet(进入解决方案)拉下 OpenCover 的情况下,是否有合适的构建服务器解决方案?或者 NuGet 只是一种获取文件的便捷方式,但它们真的应该被复制到一个集中位置然后注册,而不是尝试从特定于解决方案的版本运行?
visual-studio-2008 - OpenCover 和 GoogleTest - 抱怨缺少 PDB
我目前正在处理的构建在 32 位环境中使用 Visual Studio 2008 (Professional) 进行编译。我们一直在使用 Google Test Framework 来创建单元测试。我们正在尝试使用 OpenCover 报告代码覆盖率,它会返回
当我看到控制台上显示的结果时,测试可执行文件确实运行了。PDB 与 Google 测试可执行文件位于同一目录中。我使用的命令:
注意:目录和可执行文件不包含空格,所以我省略了引号,但我尝试使用它或不使用它,结果是一样的
我尝试过的事情:
- 我已经明确注册了 OpenCover.Profile.dll
- 我使用了 -register:user 参数
- 我曾尝试使用 -targetargs:"/noshadow" (和噪声隔离),我相信这些是特定于 MSTest 和 NUnit,但不适用于 GoogleTest
- 我试过省略 targetdir 参数
- 我已经安装了 VS 2010 再分发版
它们都产生相同的结果。我能够运行安装附带的示例。
有没有人成功地将 Google 测试框架与 OpenCover 集成?还是项目上有特定的编译设置?(我已经打开/关闭分析,并没有什么区别)
谢谢!
asp.net - 带有 C# MVC 4 应用程序的本地主机中的 OpenCover
我只是想尝试OpenCover
从我的应用程序中获取覆盖率统计信息。但我不太了解如何使用它。所以这里是我的问题?dll必须在同一个目录中吗?(我的解决方案有几个项目)有什么例子可以让 Coverage 使用OpenCover
吗?是否需要在开发服务器中IIS Express
或与ASP.NET
开发服务器一起运行站点可以?
非常感谢!
mstest - 设置 -register:user 时,OpenCover all mstest 失败
不确定我在尝试使用 opencover 时做错了什么。我可以通过针对可执行控制台应用程序运行它来生成报告,但是每当我尝试针对实际测试代码运行它时,我都不走运。我已将 mstest 和 opencover 添加到系统路径中。
图书馆代码:
测试代码:
使用 '-register:user' 标志,测试由于某种原因而失败:
如果没有“-register:user”,则表示程序集未检测:
Mstest 从目录成功运行:
我的头已经厌倦了在这里被撞到墙上,感谢您的帮助。
tfs - OpenCover 与 TFS 的集成
我是 TFS 新手,想将 OpenCover 与 TFS 集成。如果有人这样做,请帮助!
unit-testing - OpenCover 结果与 TFS 编号不匹配
我们有 VS 2008 项目(asp.net)。它在 TFS 下。我们已经使用模拟框架(nunit?)编写了单元测试。开发人员可以在他们的机器上执行测试并查看代码覆盖率。
现在,我们已将我们的解决方案升级到 VS 2012 专业版。作为专业版,它不支持执行代码覆盖,所以我冒险尝试了 OpenCover。
问题是在通过 TFS 构建时,代码分析显示代码覆盖率为 24%,但是当我在开发人员机器上本地执行 OpenCover 时,它显示的数字完全不同。我们需要针对 TFS 报告的内容,因为它由或组织自动 ALM 合规引擎监控,开发人员需要意识到 TFS 代码覆盖率不低于 X。
我的 OpenCover 语法是:
以下是 TFS 和 OpenCover 的输出:
我怎样才能让 opencover 报告与 TFS 相似的统计数据?