已经编写了多个测试用例来使用 Pester 测试新的 Chocolatey 功能。如何检查是否所有分支都已覆盖?
2 回答
当前版本的 Pester (3.0) 确实支持代码覆盖率。
只需使用
Invoke-Pester -CodeCoverage *.ps1
获得完整的代码覆盖率(覆盖率 %)和测试期间未执行的所有代码行(分支)的摘要:
Tests completed in 10.11s
Passed: 66 Failed: 0 Skipped: 0 Pending: 0
Code coverage report:
Covered 99,20 % of 501 analyzed commands in 22 files.
Missed commands:
File Function Line Command
---- -------- ---- -------
Set-ProgressColor.ps1 Set-ProgressColor 19 Write-Verbose "Progress colors are only supported on the PowerShell com...
更新 2:
感谢 oɔɯǝɹ 指出 Pester 现在已经发布了支持代码覆盖的 Pester 版本。
更新 1:
从 Pester 3.0 版开始,现在可以使用以下方法获取代码覆盖率信息:
Invoke-Pester -CodeCoverage <path to file>
这记录在项目 wiki 页面中:
https://github.com/pester/Pester/wiki/Code-Coverage
注意:为了使用它,您需要 PowerShell 版本 3.0
原始答案:
据我所知,Pester 目前不支持代码覆盖率分析,但它正在开发中。
此功能存在一个未解决的问题:
https://github.com/pester/Pester/issues/53
你可以在这里看到它正在处理:
http://davewyatt.wordpress.com/2014/06/29/code-coverage-analysis-for-pester-feedback-request/
它在这里工作的屏幕截图:
https://twitter.com/nohwnd/status/485093995929157632
所以基本上,坚持住,希望很快就会有事情发生。
就实际的 Chocolatey 代码库而言,使用了一个很好的约定,即对于每个 *.ps1 文件,“应该”有一个相应的“.Tests.ps1 文件。如果第二个文件不存在,那么该功能没有单元测试。