2

已经编写了多个测试用例来使用 Pester 测试新的 Chocolatey 功能。如何检查是否所有分支都已覆盖?

4

2 回答 2

3

当前版本的 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...
于 2015-06-16T13:26:08.823 回答
2

更新 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 文件。如果第二个文件不存在,那么该功能没有单元测试。

于 2014-07-10T06:14:16.870 回答