我已經下載了最新的 VS2022 v17.1 社區版,它沒有內置代碼覆寫率。我已經習慣了企業版,我所能找到的只是社區版的付費選項。
是否可以在 VS2022 社區版中免費進行代碼覆寫?

uj5u.com熱心網友回復:
看起來我很幸運!XUnit 測驗專案帶有 NuGet 插件
這不需要安裝在任何專案中,您需要做的就是運行我在 Powershell 腳本中制作的這些步驟:
ExecCodeCoverage.ps1
# PURPOSE: Automates the running of Unit Tests and Code Coverage
# REF: https://stackoverflow.com/a/70321555/495455
# If running outside the test folder
#cd E:\Dev\XYZ\src\XYZTestProject
# This only needs to be installed once (globally), if installed it fails silently:
dotnet tool install -g dotnet-reportgenerator-globaltool
# Save currect directory into a variable
$dir = pwd
# Delete previous test run results (there's a bunch of subfolders named with guids)
Remove-Item -Recurse -Force $dir/TestResults/
# Run the Coverlet.Collector (this is an NuGet included with XUnit Test Projects)
$output = [string] (& dotnet test --collect:"XPlat Code Coverage" 2>&1)
Write-Host "Last Exit Code: $lastexitcode"
Write-Host $output
# Extract the GUID from the Output eg,
#"Attachments: E:\Dev\XYZ\src\XYZTestProject\TestResults\0f26f16d-bbe8-463b-856b-6d4fbee673bd\coverage.cobertura.xml Passed!"
$i = $output.LastIndexOf("TestResults") 11
$j = $output.LastIndexOf("coverage")
$cmdGuid = $output.SubString($i,$j - $i - 1)
Write-Host $cmdGuid
# Delete previous test run reports - note if you're getting wrong results do a Solution Clean and Rebuild to remove stale DLLs in the bin folder
Remove-Item -Recurse -Force $dir/coveragereport/
# To keep a history of the Code Coverage we need to use the argument:
# -historydir:SOME_DIRECTORY
if (!(Test-Path -path $dir/CoverageHistory)) {
New-Item -ItemType directory -Path $dir/CoverageHistory
}
# Generate the Code Coverage HTML Report
reportgenerator -reports:"$dir/TestResults/$cmdGuid/coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:Html -historydir:$dir/CoverageHistory
# Open the Code Coverage HTML Report (if running on a WorkStation)
$osInfo = Get-CimInstance -ClassName Win32_OperatingSystem
if ($osInfo.ProductType -eq 1) {
(& "$dir/coveragereport/index.html")
}
把它放在測驗專案中:

結果非常好(免費):

您可以深入查看突出顯示的線路覆寫范圍,它只是不如企業版強大或集成:

我更新了腳本以支持歷史記錄:

uj5u.com熱心網友回復:
你有使用 VS 2022 的 Fine Code Coverage,你可以在這里訪問它 https://github.com/FortuneN/FineCodeCoverage/releases并單擊 2022 檔案。
之后,它只是您在計算機上安裝的一個插件,它可用于每個專案,無需逐個專案添加。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/386089.html
上一篇:Angular如何測驗服務方法?
