code-coverage - 使用 xUnit 测试打开封面以获取 azure 功能
问题描述
我有一个包含天蓝色功能实现的项目。我已经为此使用 xUnit 创建了单元测试,作为同一解决方案下的另一个项目。我在解决方案级别添加了一个 powershell 脚本来运行 opencover exe。但是脚本给出了错误“OpenCover.Console.exe:无法解析指定的框架版本'2.0'”。我如何使用开盖来获得相同的代码覆盖率。我的文件夹结构是
--PM(folder)
--PM.sln
--PM(folder)
--PMTests(folder)
--TestsAndCoverage.ps1
我的 TestsAndCoverage.ps1 有以下内容。
$testProjects = "PMTests"
# Get the most recent OpenCover NuGet package from the dotnet nuget packages
$nugetOpenCoverPackage = Join-Path -Path $env:USERPROFILE -ChildPath "\.nuget\packages\OpenCover"
$latestOpenCover = Join-Path -Path ((Get-ChildItem -Path $nugetOpenCoverPackage | Sort-Object Fullname -Descending)[0].FullName) -ChildPath "tools\OpenCover.Console.exe"
# Get the most recent OpenCoverToCoberturaConverter from the dotnet nuget packages
$nugetCoberturaConverterPackage = Join-Path -Path $env:USERPROFILE -ChildPath "\.nuget\packages\OpenCoverToCoberturaConverter"
$latestCoberturaConverter = Join-Path -Path (Get-ChildItem -Path
$nugetCoberturaConverterPackage | Sort-Object Fullname -Descending)[0].FullName -ChildPath "tools\OpenCoverToCoberturaConverter.exe"
If (Test-Path "$PSScriptRoot\OpenCover.coverageresults"){
Remove-Item "$PSScriptRoot\OpenCover.coverageresults"
}
If (Test-Path "$PSScriptRoot\Cobertura.coverageresults"){
Remove-Item "$PSScriptRoot\Cobertura.coverageresults"
}
& dotnet restore
$testRuns = 1;
foreach ($testProject in $testProjects){
# Arguments for running dotnet
$dotnetArguments = "xunit", "-xml `"`"$PSScriptRoot\testRuns_$testRuns.testresults`"`""
"Running tests with OpenCover"
& $latestOpenCover `
-register:user `
-target:dotnet.exe `
-targetdir:$PSScriptRoot\$testProject `
"-targetargs:$dotnetArguments" `
-returntargetcode `
-output:"$PSScriptRoot\OpenCover.coverageresults" `
-mergeoutput `
-oldStyle `
-excludebyattribute:System.CodeDom.Compiler.GeneratedCodeAttribute `
"-filter:+[Sample*]* -[*.Tests]* -[*.Tests.*]*"
$testRuns++
}
"Converting coverage reports to Cobertura format"
& $latestCoberturaConverter `
-input:"$PSScriptRoot\OpenCover.coverageresults" `
-output:"$PSScriptRoot\Cobertura.coverageresults" `
"-sources:$PSScriptRoot"
解决方案
推荐阅读
- python - 如何从饼图中删除 0%
- delphi - 如何通过鼠标右键单击 TRichEdit 来设置插入符号的位置?
- oracle - 带有“不包含”的 Oracle 文本非常慢
- sql - SQL 获取满足条件 1 的所有行,其中至少有一个也满足条件 2
- android - RecyclerView 没有在我的应用屏幕上显示来自 Firebase 的数据
- java - 从 SQLQuery Java 返回布尔值
- mongodb - 在 mongo db 中存储给定 lat、long 和地址的最佳方法是快速查找给定 lat、long 的地址
- google-apps-script - 使用 Google Apps Script 和 Slides API 删除 Google 幻灯片中的注释
- css - 如何在 CSS 中缩放剪辑路径区域?
- vba - AutoFilter.Range.Copy 不工作