- POV:**我正在使用pester生成Powershell测试代码覆盖率。
- 问题:**生成的Coverage.xml文件仍为空。
Write-Verbose -Message "Running Pester Tests"
$conf = New-PesterConfiguration
$conf.Run.Path= ".\Tests\"
$conf.Run.TestExtension = '.Unit.Test.ps1'
$conf.Output.CIFormat = "AzureDevops"
$conf.TestResult.Enabled = $true
$conf.TestResult.OutputPath = './TestResults/Testresult.xml'
$conf.CodeCoverage.Enabled = $true
$conf.CodeCoverage.OutputFormat = 'JaCoCo'
$conf.CodeCoverage.CoveragePercentTarget = 70
$conf.CodeCoverage.RecursePaths = $true
$conf.CodeCoverage.OutputPath="./TestResults/Coverage.xml"
$conf.CodeCoverage.Path=".\Tests\*.Unit.Test.ps1"
Invoke-Pester -Configuration $conf
> Get-Module Pester | Where-Object {$_.Version -gt '5.0.0'}
ModuleType Version PreRelease Name ExportedCommands
---------- ------- ---------- ---- ----------------
Script 5.4.0 Pester {Add-ShouldOperator, AfterAll, AfterEach, Assert-MockCalled…}
> $PSVersionTable
Name Value
---- -----
PSVersion 7.3.1
PSEdition Core
GitCommitId 7.3.1
OS Microsoft Windows 10.0.22621
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
1条答案
按热度按时间avwztpqn1#
改变这个
到
让它起作用了。
文档对此非常模糊:https://pester.dev/docs/commands/New-PesterConfiguration
运行:
路径:要搜索测试的目录、直接指向测试文件的路径或两者的组合。默认值:@('.')
代码覆盖范围:
路径:用于代码覆盖率的目录或文件,默认情况下使用常规设置中的路径,除非在此处重写。
默认值:@()
常规设置为:测试文件的路径。CodeCoverage说:使用常规设置中的路径..
这让我相信CodeCoverage应该指向测试文件。
然而,它们的默认设置甚至不起作用。
这让我误入歧途。
感谢Daniel让我走上了正确的轨道。
纠正
文件已生成,但覆盖率不正确始终为0%