gpt4 book ai didi

powershell - 我的测试代码和功能代码是否需要位于同一目录中才能使 Pester Code Coverage 正常工作?

转载 作者:行者123 更新时间:2023-12-05 04:51:57 24 4
gpt4 key购买 nike

我的测试代码和功能代码位于同一目录中,我得到的代码覆盖率结果运行良好。

然而,在将代码拆分到单独的目录 SrcTests 之后,我现在看到以下关于路径的错误:

Resolve-CoverageInfo:无法解析覆盖路径

如何确保将数据写入我的代码覆盖率文件?我运行 Pester 的方式是通过设置配置然后使用 Invoke-Pester 命令。参见下面的示例:

$files = Get-ChildItem .\Tests -File -Recurse -Include *.*

$config = [PesterConfiguration]::Default
$config.CodeCoverage.Enabled = $true
$config.CodeCoverage.Path = $files
$config.CodeCoverage.OutputFormat = "NUnitXml"
$config.CodeCoverage.OutputPath = "$result_folder/test-coverage.xml"
$config.TestResult.Enabled = $true
$config.TestResult.OutputPath = "$result_folder/test-results.xml"
$config.Filter.Tag = $TAG

Invoke-Pester -Configuration $config

当我检查是否生成了 test-coverage.xml 文件时,它是空的。

最佳答案

如果 srctest 文件位于不同的目录中,则可以应用代码覆盖。

上述代码的问题在于语句 $config = [PesterConfiguration]::Default 运行所有具有 .tests 扩展名的文件 - $files 变量执行不指定要运行的文件。它指定要查看哪些文件以获得代码覆盖率结果。由于混淆了哪些文件正在运行以及 src 文件所在的位置,因此出现了这个问题。应修改此行以包含实际的 src 文件(代码覆盖工具正在分析实际函数),例如第一行将不起作用,因为代码覆盖工具正在分析测试文件,我们必须使用第二行才能正确实现,它分析 src 文件:

$files = Get-ChildItem .\Tests -File -Recurse -Include *.*

$files = Get-ChildItem .\Src -File -Recurse -Include *.*

关于powershell - 我的测试代码和功能代码是否需要位于同一目录中才能使 Pester Code Coverage 正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66653942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com