标签: opencover

如何使用OpenCover和ReportGenerator查看单元测试覆盖率结果?

我是一个使用OpenCover和ReportGenerator的菜鸟,我在理解如何让它们工作方面有点挣扎.我正在使用VS.NET 2012'Professional',这意味着我无法访问内置的单元测试覆盖工具.我也安装了ReSharper,但不想在'dotCover'中支付另一个实用程序

看起来OpenCover和ReportGenerator会做我需要的工作,我会看到同时下载的文档,但我缺少一些理解.第一关,当我为两者下载nuget包时,我的目标项目应该是什么?我有一个多层应用程序,所以我假设我的单元测试项目是正确的,或者甚至是否重要?我在文档中看到,我只是使用命令行命令指向/ bin(我认为)解决方案,所以也许我甚至不需要将这些下载添加到任何特定项目(可能是测试工具) ).有人可以告诉我,如果我有这个正确吗?

一旦我安装了它们,我就会尝试获得单元测试覆盖率指标,并且程序包附带的文档并不像我希望的那样清晰.是否有任何好的博客文章或链接一起使用这些工具来获取指标?

.net unit-testing nuget-package opencover reportgenerator

38
推荐指数
3
解决办法
3万
查看次数

对.net核心项目使用<DebugType> Full </ DebugType>和<DebugType> Portable </ DebugType>有什么区别?

要生成打开封面报告,我必须将debugType设置为Full.我在构建服务器上生成报告,因为如果覆盖范围没有达到某个阈值,我必须使构建失败.构建在发布模式下生成.在我的csproj文件中保持debugType Full有什么后果?它会降低生产性能吗?

.net opencover roslyn .net-core

20
推荐指数
2
解决办法
8372
查看次数

如何向OpenCover工具添加过滤器以跳过命名空间中的某些类

如何添加过滤器以跳过命名空间/程序集中的某些类.例如:SYM.UI是基础组件,我想跳过SYM.UI.ViewModels.编写下面的过滤器,但它包括所有这些过滤器并没有满足我的要求:

+[SYM.UI*]* -[SYM.UI.ViewModels*]*
Run Code Online (Sandbox Code Playgroud)

请帮我纠正这个?

code-coverage opencover

17
推荐指数
1
解决办法
1万
查看次数

Opencover有多个程序集

我正在尝试将三个单元测试项目(三个不同的dll)组合到一个OpenCover报告中.可能吗?我试图查看过滤器,但我在OpenCover Wiki网站上看不到足够的细节(示例).有人能说明我可以从哪里开始吗?

非常感谢!

code-coverage opencover

17
推荐指数
2
解决办法
6478
查看次数

opencover + xunit没有结果

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

OpenCover.Console.exe -target:"c:\Programmes2\xunit\xunit.console.clr4.x86.exe" -targetargs:"""C:\Sources\Project\BackOffice.Tests\bin\Debug\BackOffice.Tests.dll"" /noshadow " -output:bo.coverage.xml -targetdir:"C:\Sources\Project\BackOffice.Tests\bin\Debug" -filter:+[*]*
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出

xUnit.net console test runner (32-bit .NET 4.0.30319.269)
Copyright (C) 2007-11 Microsoft Corporation.

xunit.dll:     Version 1.9.0.1566
Test assembly: C:\Sources\Project\BackOffice.Tests\bin\Debug\BackOffice.Tests.dll

31 total, 0 failed, 0 skipped, took 2.760 seconds
Committing...
No results - no assemblies that matched the supplied filter were instrumented
    this could be due to missing PDBs for the assemblies that match the filter
    please review the output file and refer to the Usage guide (Usage.rtf)
Run Code Online (Sandbox Code Playgroud)

生成的报告始终相同:

<?xml version="1.0" encoding="utf-8"?> …
Run Code Online (Sandbox Code Playgroud)

xunit opencover

9
推荐指数
1
解决办法
3471
查看次数

OpenCover:可以将多个报告合并为一个吗?

我正在使用OpenCover为Web应用程序生成功能测试覆盖率.这些测试运行时间相当长(3个多小时),因此我们将它们分成多个并行运行的测试.因此,有六个,而不是单一的报道报告.

为了将这些覆盖率报告导入SonarQube,我需要找到一种方法将它们组合成一个超级报告.ReportGenerator支持将多个报表合并为一个,但会创建HTML输出,这不是SonarQube可以使用的.

此时我的选择是

  1. 手动滚动OpenCover报告合并(blech!)
  2. 连续运行我的功能测试,大大增加了故障反馈时间

我还缺少其他任何选择吗?

c# code-coverage opencover sonarqube

9
推荐指数
1
解决办法
2378
查看次数

OpenCover生成一个空报告

我正在使用OpenCover来确定简单C#项目的代码覆盖率.

问题

虽然我可以看到MSTest运行单元测试(并且成功),但生成的报告是空的.

细节

这是我使用的命令:

opencover.console.exe -register -arch:32 
                      -target:"%VSINSTALLDIR%\Common7\IDE\mstest.exe"
                      -targetargs:"/testcontainer:calculatortest.dll"
                      -filter:+[calculator.dll]* -output:coverage.xml
Run Code Online (Sandbox Code Playgroud)

输出

Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.

Loading calculatortest.dll...
Starting execution...

Results               Top Level Tests
-------               ---------------
Passed                CalculatorTest.StatisticsTest.AddOccurrenceTest
Passed                CalculatorTest.StatisticsTest.AvgTest
2/2 test(s) Passed

Summary
-------
Test Run Completed.
  Passed  2
  ---------
  Total   2
Results file:  e:\Users\erno\Documents\Visual Studio 2010\Projects\CodeStatistics\CalculatorTest\bin\Debug\TestResults\erno_ERNO01 2011-07-01 14_27_06.trx
Test Settings: Default Test Settings
Visited Classes 0 of 0 (NaN)
Visited Methods 0 of …
Run Code Online (Sandbox Code Playgroud)

.net c# mstest code-coverage opencover

8
推荐指数
1
解决办法
4076
查看次数

打开封面不会在封面细节上生成输出

试图打开如下打开的封面

opencover.console.exe -target:"C:\ Users\rkapiset\Downloads\xunit-1.8\xunit.console.clr4.x86.exe"-targetargs:"""E:\ Office\CRM\dotnet\1 - UI\EYC.CRM.UI.Tests\bin\Debug\EYC.CRM.UI.Tests.dll""" - filter:+ [EYC]*-output:coverage.xml

以下是结果

共61次,3次失败,0次跳过,耗时1.674秒
访问次数0 of 0(NaN)
访问方法0 of 0(NaN)
访问点0 of 0(NaN)未
访问类未
访问的方法

我有什么不对的提示?提前致谢.

code-coverage opencover

8
推荐指数
2
解决办法
8908
查看次数

提高openCover的速度

我们当前正在运行一个运行nunit3.console.exe的OpenCover会话.

我们的命令行如下:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2"
exit 0
Run Code Online (Sandbox Code Playgroud)

由于两者之间的仪器,我们期望这比我们的正常单元测试慢,但不是那么多.

没有代码覆盖,单元测试需要1h.目前,通过代码覆盖,我们已经花了3天23小时,我们认为我们只执行了10%.

这些结果应该在导出后输出到SonarQube.

我们可以做些什么来提高速度(除了升级运行测试的计算机,无论如何都可能会这样做)?

喜欢不太详细的结果,......?我们最感兴趣的是代码覆盖率,持续时间和其他东西对我们来说不是很有趣.甚至使用OpenCover之外的其他工具.

我不知道这是否重要,但这条线是由詹金斯执行的.

code-coverage jenkins opencover

8
推荐指数
1
解决办法
349
查看次数

如何从OpenCover报表中排除类

在使用OpenCover生成覆盖率报告(然后使用ReportGenerator生成HTML报告)时,我试图排除框架生成的类.特别是,由服务引用在项目命名空间下生成的类.

我用来生成XML文件的命令如下所示:

OpenCover.Console.exe -register:user "-target:MyProject.Tests.dll" -targetargs:"/testcontainer:MyContainer" -output:coverage.xml -mergebyhash -filter:-*.AWebService.*
Run Code Online (Sandbox Code Playgroud)

我也试图通过文件排除:

OpenCover.Console.exe -register:user "-target:MyProject.Tests.dll" -targetargs:"/testcontainer:MyContainer" -output:coverage.xml -mergebyhash  -excludebyfile:*Reference.cs 
Run Code Online (Sandbox Code Playgroud)

但服务引用类仍显示在XML文件中.

有没有办法只排除Visual Studio生成的特定类?

c# unit-testing mstest opencover reportgenerator

7
推荐指数
1
解决办法
6909
查看次数