已编写多个test cases以使用Pester测试新的Chocolatey函数。如何检查所有分支是否已被覆盖?
答案 0 :(得分:3)
当前版本的Pester(3.0)确实支持代码覆盖率。
只需使用
Invoke-Pester -CodeCoverage *.ps1
获得完整的代码覆盖率(coverage%)以及测试期间未执行的所有代码行(分支)的摘要:
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...
答案 1 :(得分:2)
更新2:
感谢oɔɯǝɹ指出Pester现在已经发布了支持代码覆盖的Pester版本。
更新1:
从Pester 3.0版开始,现在可以使用以下方法获取代码覆盖率信息:
Invoke-Pester -CodeCoverage <path to file>
这在项目维基页面中有记录:
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文件,“should”应该是相应的“.Tests.ps1文件。如果第二个文件没有”存在,那么该功能没有单元测试。