问题标签 [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.

0 投票
2 回答
1702 浏览

c# - OpenCover - 如何查看每个测试的覆盖率?

OpenCover github 页面上,我可以看到 OpenCover 支持测试覆盖(“版本 3(测试支持覆盖,调试符号”)。问题是,我不知道如何使用此选项运行 OpenCover。我的工作流程是运行使用 OpenCover 和 nUnit 进行单元测试,然后使用 ReportGenerator 生成完整的 html 报告并查看它——我在任何地方都看不到“测试覆盖率”。

或者也许我弄错了“测试覆盖”功能?我如何想象这个功能是我可以得到一个问题的答案,例如“我的 TestXYZ() 覆盖了哪些代码行?”。

谁能给我一些关于如何使用该功能的提示?

0 投票
2 回答
2852 浏览

xml - OpenCover 报告分析

我正在使用 OpenCover 来计算代码覆盖率,我得到以下 xml 响应。

谁能解释一下我如何通过 xml 计算代码覆盖率、覆盖的行数和其他有用信息。

我正在使用 Xslt 将其转换为 html ,我不能为此目的使用报告生成器工具。

提前致谢。

0 投票
1 回答
1991 浏览

teamcity - 如果 dotCover 没有报告足够高的结果,我如何使 TeamCity 构建失败?

我希望 TeamCity 运行我的 mSpec 测试并报告测试所涵盖的代码。

我还希望 TeamCity 报告如果某些命名空间中的代码覆盖率未达到阈值(例如,MyProduct.ImportantStuff必须为100%,但MyProduct.LegacyStuff必须为 [ 23% 或当前的任何值,以确保我们不添加新的没有覆盖测试的东西]。

我最初查看 dotCover 是因为它已集成到 TeamCity 中。从那以后,我一直在研究 OpenCover,因为我无法让 TC 在低覆盖率的情况下失败。

我让 OpenCover 正常工作,但我仍然想知道(我相信很多人都会)如果代码覆盖率太低,如何让 TC 使构建失败。

0 投票
2 回答
363 浏览

performance - 开盖与生产

如果我使用 opencover 为我的产品的所有构建提供在构建服务器上运行的覆盖率分析。

我的印象是 opencover(可能还有其他所有)“仪器”记录命中的代码。

这个检测代码是否“不安全”和/或更慢,因此我不应该在生产服务器上使用这个代码?

我希望我误解了这个过程,因为必须进行 2 次构建(1 次用于覆盖测试,实际用于生产)会减慢构建服务器的速度。

0 投票
1 回答
4092 浏览

xunit - opencover + xunit 没有结果

我试图使用 OpenCover(今天下载)来覆盖我的测试。这是我使用过的命令行:

这是我得到的输出

生成的报告总是一样的:

更多上下文:PDB 存在于目标文件夹中,我以管理员身份运行命令提示符。测试的项目是一个 .net 4/mvc 3 应用程序。我的电脑正在运行 Windows 7/32 位。关于那个主题,不确定这是否有任何关系,但其中的 x86 文件夹是空的,即使我强制目标平台为 x86。

此外,当我尝试使用 regsvr32 注册 OpenCover.Profiler.dll 时,我收到一条错误消息,指出该 dll 可能与我的 Windows 版本不兼容。

如果我尝试使用 -register 或 -register:user 参数,则会出现异常:

我还尝试使用由不同项目(xunit 也是)测试的 DLL 项目(.net4),结果相同(缺少)。

任何帮助表示赞赏!

0 投票
1 回答
2019 浏览

c# - 将 OpenCover 与 xUnit 集成

我对 Visual Studio IDE 比较陌生,并且正在使用 xUnit 框架进行测试的 C# 项目工作。

我计划使用“OpenCover”工具来确定代码覆盖率。有人能告诉我如何将此工具与 Visual Studio 集成吗?

0 投票
3 回答
795 浏览

32bit-64bit - Gallio 64 位平台和 32 位 dll 声纳和 OpenCover BadImageException

我们使用 Gallio 进行测试执行。所有被测项目和所有测试项目均编译为 32 位版本。Buildserver 是 Win2008 R2 64bit。Gallio 安装为 32 位版本。加里奥是通过声纳启动的。作为coverageTool,我们使用OpenCover。正如标题所说,BadImageFormat 异常是问题所在。然后尝试运行,使用 .Net\Framework64\ 文件夹。但所有目标都设置为 32 位架构。经过两天的测试和研究,我尝试了不同的 Gallio 版本: 32 位安装程序 64 位安装程序 Gallio Bundle Zip 我试图将 Gallio.Host.x86.exe 重命名为 Gallio.Host.exe 我试图通过 CorFlags 强制 Gallio 在 32 位模式下运行Galio.Echo.exe /32BIT+ /FORCE (使用 /FORCE 将使该图像的签名无效,并要求组件退出)

有没有人知道我做错了什么?

0 投票
1 回答
691 浏览

nunit - OpenCover 能否使用 Microsoft.Moles.Runner 和 Nunit 获得代码覆盖率?

我将 OpenCover 与 Visual Studio2010 专业版一起使用。它在命令行上与 NUnit 配合得很好。

结果如下。

NUnit-Console 版本 2.6.0.12051 版权所有 (C) 2002-20011 Charlie
Poole。版权所有 (C) 2002-2004 James W. Newkirk、Michael C. Two、
Alexei A. Vorontsov。版权所有 (C) 2000-2002 菲利普·克雷格。
保留所有权利。

运行时环境 - 操作系统版本:Microsoft Windows NT 6.1.7601
Service Pack 1 CLR 版本:4.0.30319.269 (Net 4.0)

ProcessModel:默认 DomainUsage:单次执行运行时:
net-4.0 .. 测试运行:2,错误:0,失败:0,不确定:0,
时间:42.14 秒未运行:0,无效:0,忽略:0,跳过: 0

提交... 已访问 175 个课程中的 59 个 (33.7142857142857) 已访问
方法 4131 个中的 268 个 (6.48753328491891) 已访问点 71763 中的 15137 个
(21.0930423755975) 已访问分支 8025 个中的 196 个 (2.4423676012)

==== 替代结果(包括所有方法,包括那些没有
相应来源的方法) ==== 替代访问类 59 of 207
(28.5024154589372) 替代访问方法 284 of 4371
(6.49736902310684)

但是它不适用于 Microsoft.Moles。

这个结果如下。

微软 Moles Runner v0.94.51023.0 --
http://research.microsoft.com/moles -- 。NET v4.0.30319 版权所有 (c)
Microsoft Corporation 2007-2010。版权所有。

检测...启动
NUnit-Console 版本 2.6.0.12051
CLR 版本:4.0.30319.269 (Net 4.0)

ProcessModel:默认 DomainUsage:单次执行运行时:
net-4.0 .. 测试运行:2,错误:0,失败:0,不确定:0,
时间:28.004 秒未运行:0,无效:0,忽略:0,跳过: 0

提交... 访问过的课程 0 of 2 (0) 访问过的方法 0 of 14 (0)
访问过的点 0 of 45 (0) 访问过的分支机构 0 of 2 (0)

==== 替代结果(包括所有方法,包括那些没有相应
来源的方法) ==== 替代访问类 0 of 2 (0)
替代访问方法 0 of 16 (0)

测试的结果都是正确的,但没有覆盖。

我试图改变痣的参数,例如'/args:"/domain=Multiple"'、-oldType 等,但它从来没有用过。

有人注意到我应该怎么做吗?OpenCover 可以在 Nunit 中使用痣吗?

0 投票
2 回答
1694 浏览

teamcity - OpenCover 不覆盖 TeamCity

在 TeamCity 下运行时,我有一个项目在输出覆盖文件中没有给我任何覆盖。当我从命令行运行时,它覆盖得很好。显然,TeamCity 运行时使用的本地系统帐户存在一些权限问题,即,如果我将 TeamCity 运行器更改为使用我用来访问它所覆盖的机器的登录名之一。但是我不想在 TeamCity 服务中维护该用户的密码。

我在 nant 脚本中启动 OpenCover 时使用了 -register:user 参数,这没有帮助。

在 TeamCity 下运行时,推荐的设置是什么?

0 投票
1 回答
2434 浏览

msbuild - 如何在 TeamCity 中运行 OpenCover + NUnit 而不运行所有单元测试两次?

我在我的 MSBuild 脚本中设置了 OpenCover,设置了 ReportGenerator,并将其作为工件输出并有一个自定义选项卡——所有这些都很好。这是我的 MSBuild 目标:

然而,为了运行 OpenCover,它附加到 NUnit 运行器以生成报告,然后运行所有单元测试。虽然这可以为单元测试生成 xml 输出,但我还没有找到一个 xsl 文件来生成与 TeamCity 7.1 中内置的报告一样好的报告,更不用说过滤和搜索功能了。

但是,如果我使用内置的 NUnit 运行程序在 TeamCity 中启用报告(显然这是在 TeamCity 中获取单元测试报告的唯一方法),它会重新运行单元测试以生成其报告。

虽然所有这些都有效,但我的问题是,是否有一种方法可以在不必运行所有单元测试两次的情况下获得这两个报告?具体来说,OpenCover 是否可以在不运行 NUnit 测试的情况下生成其报告,或者 TeamCity 是否可以在不运行单元测试的情况下生成其报告?

请注意,这是一个 ASP.NET MVC3 应用程序,OpenCover 文档没有指定如何附加 ASP.NET 或是否可能,但很明显它需要一个可执行文件才能附加。另请注意,我正在使用 NUnit 2.6.1,以防万一。