问题标签 [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.
c# - 带有gallio openCover的Sonarqube - 如何?
我正在尝试获得 C# 单元测试覆盖率。
下面是我的声纳设置,但是当我运行声纳运行程序时,我看不到任何与统一测试覆盖率相关的东西,并且浏览器上的结果也没有显示任何单元测试覆盖率。
我的问题是:声纳 c# 插件页面说,gallio 作为它的一部分安装。我假设我不需要在外部安装gallio,但是当我运行声纳运行器时,它会调用gallio,而gallio又会调用opencover来获得覆盖?
我究竟做错了什么 ?
我在声纳日志中没有找到任何关于 Gallio 的信息:
unit-testing - OpenCover 的运行时间比 nunit-console 长得多
我正在尝试向该项目添加单元测试:https ://github.com/JimBobSquarePants/ImageProcessor
运行单元测试时,它们可能需要 1 或 2 分钟才能运行(它是一个图像处理库,我不希望它们快得离谱)。
问题是当我在这些测试上运行 OpenCover 时,它们需要大约 20 分钟才能运行。
当前单元测试的要点是有一堆测试图像,每个单元测试(实际上更像是集成测试)读取每个图像,并在其上运行一堆效果。
我猜我做错了什么,但是什么?为什么 OpenCover 比 NUnit runner 花费更多时间?
c# - 是否可以在 SonarQube 中导入 OpenCover /result?
由于 C# 生态系统 3 不再支持 Gallio,我目前正在更改我们的声纳设置。我已经通过使用 OpenCover 和以下命令成功导入了单元测试覆盖率。
使用此命令,我只能获得单元测试覆盖率,但我还想查看失败和成功测试的数量。我想我可以使用 /result 选项来实现这一点
此命令返回一个 xml,其中包含有关已运行测试的信息,但有没有办法将此 xml 导入 SonarQube?还是不支持这个?
目前我正在使用以下命令导入 Coverage.xml 文件:
是否有类似的属性可以导入带有测试结果的 tests.xml 文件?
.net - 如何构建 OpenCover,并将其更新到 .NET 4.5.1?
我一直在使用 OpenCover 作为项目的一部分,我需要介绍的软件之一是针对 .NET 4.5.1。但是,OpenCover 的目标是 .NET 4.0。这导致我们正在尝试测试的软件出现问题,因为它预计运行的是 .NET 4.5.1,而 OpenCover 似乎让它认为它运行的是 .NET 4.0。
我已经下载了 OpenCover 源代码以尝试自行将其更新到 .NET 4.5.1,但我什至无法让它在 .NET 4.0 中构建。此处找到的文档不够清晰,无法帮助我自己构建它。所以,我的问题的主要部分是,有没有人有任何从源代码构建 OpenCover 的经验,你能否为我提供一套明确的说明如何做到这一点?到目前为止,我尝试过的研究和多次尝试都没有结果。此外,如果有人尝试将 OpenCover 更新到 .NET 4.5.1,我很想听听您在那里收集的任何信息。
编辑:
以下是有关我为构建它所做的工作的更多信息:
我运行了源代码中包含的 Build.bat 文件。它运行了几秒钟,然后输出:
“构建失败
外部程序失败:C:\Windows/Microsoft.NET/Framework64/v4.0.30319/MSBuild.exe(返回码为 1)”
希望这将使您对我遇到的问题有更多的了解。
编辑2:
感谢 Patrick Hofman,我被指出了正确的方向并设法将 MSBuild.exe 的版本更改为正确的版本并停止了该错误。不幸的是,我现在遇到了某种链接错误,其全文可以在下面关于帕特里克回答的评论中的 pastebin 中看到:
tfs - 用于在 TFS (Opencover) 上通过 cmd 执行的测试运行程序 Bin 路径
我正在尝试执行 OpenCover 以获取与 TFS 构建集成的代码覆盖率结果。这个结果被发送到 SonarQube(通过 sonar-runner,它作为一个活动包含在构建模板中)。我有两台 TFS 服务器、一台控制器和两台服务器中的多个代理。我们在代理中使用标签,因此 .Net 构建可以在任何具有匹配标签的代理中执行。
为了集成 OpenCover,我在项目中创建了一个 cmd 文件并添加到源代码管理中。详细信息在https://stackoverflow.com/a/26651450/1764875
但是在 TFS 服务器中,MSTest 的路径是不一样的,我不想添加一些逻辑来根据构建服务器选择路径。
其他 .Net 项目也正在使用其他集成在项目中并在该 TFS 服务器中运行的测试运行程序(XUnit、NUnit)。
要运行 OpenCover,我需要正确的 Test Runner Binary 的路径。我的问题是:
- 有没有办法在构建时获得这条路径(在构建定义中,例如使用一些变量)?
欢迎任何建议!
提前致谢。
jenkins - OpenCover 未生成 Nunit 结果
在我们的持续集成过程中,我们使用 Jenkins、NUnit 和 OpenCover。
每个 Jenkins 作业都运行 NUnit 和 OpenCover,但 OpenCover 调用 NUnit 批处理文件以确定代码覆盖率;因此 NUnit 被执行两次。
例如,我们有第一批(简化的)批次:
我们还有第二批 OpenCover:
问题是 OpenCover 不提供 NUnit 结果(我之前命令中的 NunitResult.xml 文件)。因此,为了减少每个 Jenkins 作业的测试时间,我们希望取回 NUnit 结果,或者在 Jenkins 作业网页中找到一种使用 OpenCover 具有以下功能的方法:
- 每个 Jenkins 工作的最新测试结果,因此开发人员很容易看到最新结果。
- 测试结果趋势
有没有办法通过一次 NUnit 运行同时获得 NunitResult 和 OpenCover 结果?
.net - 打开封面报告
我们正在使用 OpenCover 来检查我们的代码覆盖率。我们有大量的测试,因此 OpenCover 生成了大约 100 个报告。ReportGenerator 创建了Sequence Coverage 的summary,但是我们还需要知道所有测试的branch Coverage 总结,那么是否可以通过任何方式统计Branch Coverage?
coded-ui-tests - 使用 OpenCover 运行 Coded UI 测试而不收集应用程序代码
我们有一个 Windows 客户端,我们的 QA 团队为其编写了编码的 UI 测试。我正在尝试让 OpenCover 工作,这样我们就可以看到他们的测试真正击中了多少应用程序。他们使用 MSTest 框架之上的自定义框架编写测试。
他们的框架使用 ApplicationUnderTest.Launch 以不同用户身份启动应用程序来测试安全设置。我可以捕获测试 dll 的覆盖率,但它自己的应用程序。
我已经强制应用程序以 32 位构建,确保所有 pdb 都存在于文件夹中,并将 pdb 目录也包含在 targetdir 中。
有没有其他人看到这个问题?我还尝试用包装 exe 替换我的批处理文件,并得到了覆盖,但不是主应用程序。一切都以他们启动应用程序的用户身份运行,该用户也是机器上的管理员。
我正在运行的命令是: C:\Users\kkindt.CORP\AppData\Local\Apps\OpenCover\OpenCover.Console.exe -register "-target:C:\Program Files (x86)\Microsoft Visual Studio 12.0\ Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" -output:C:\CodeCoverage\CollectionResults\CodedUICover.xml "-targetargs:C:\CodeCoverage\Tests\EllisWinAppTest.dll /Platform:x86 /Framework:框架40 /测试:LaunchEllisTest"
opencover - OpenCoverage 覆盖是如何工作的——没有任何测试的类是否计算在内?
我认为我对 OpenCover(或一般的覆盖范围)的工作方式有一个基本的误解。
我认为没有任何测试的类不计入覆盖范围,这很奇怪。
例如,如果我有两个类(假设行数相同),一个被完全覆盖,而另一个没有写 UT,我希望得到 50% 的覆盖率,但我相信我会得到 100%。这对我来说没有意义。
所以我有2-3个问题:
- 我是否应该期望没有任何 UT 的课程计入覆盖率百分比?
- 如果是这样,我该如何解决我的问题?(我应该在报告中查找一些内容吗?究竟是什么?OpenCover 是否有可能出于其他原因忽略这些类?)
- 如果不是,这有什么意义?如果我开始将 UT 添加到遗留项目中,那么每次我将 UT 添加到一个直到现在还没有的类时,覆盖率都会下降。如果是这样的话,一定有我遗漏的东西。
谢谢你的帮助,罗伊。
moles - 使用 3rd 方覆盖工具运行假货
是否可以将 Microsoft Fakes 与 NCover、PartCover 或 OpenCover 等 3rd 方代码覆盖工具一起使用?
使用 Moles 可以使用 CLRMONITOR_EXTERNAL_PROFILERS 环境变量,但它不适用于 Fakes,所以我想知道环境变量是否已更改名称 - 如果是这样,我无法找出这是什么。