本文目录
介绍
Pester提供了一个用来在PowerShell内部通过单元测试执行和验证PowerShell命令的框架。Pester遵循一个文件命名规范:命名的测试可以在测试时被自动发现,和一套简单的函数集,它为隔离,运行,评估和报告PowerShell命令结果暴露了一套DSL协议。
Pester可以执行能够被识别为pester测试文件中的任何命令和脚本。这包含了函数,命令,组件和脚本。Pester在控制台中以ad hoc风格运行。它能被集成到一个持续运行系统的开发脚本中。
Pester也包含了一个强大的模拟函数集,它允许测试模拟和仿制一段正在测试的PowerShell脚本内部任何命令的功能。
测试用例的编写
这是测试框架Pester内部的一个例子,位于Examples\Calculator目录下。比如我们写了一个产品脚本:Add-Numbers.ps1
function Add-Numbers($a, $b) { return $a + $b }
然后针对产品中的函数Add-Number写一个测试脚本:Add-Numbers.Tests.ps1
$here = Split-Path -Parent $MyInvocation.MyCommand.Path . "$here\Add-Numbers.ps1" Describe -Tags "Example" "Add-Numbers" { It "adds positive numbers" { Add-Numbers 2 3 | Should Be 5 } It "adds negative numbers" { Add-Numbers (-2) (-2) | Should Be (-4) } It "adds one negative number to positive number" { Add-Numbers (-2) 2 | Should Be 0 } It "concatenates strings if given strings" { Add-Numbers two three | Should Be "twothree" } It "should not be 0" { Add-Numbers 2 3 | Should Not Be 0 } }
下载测试框架
可以在这里手动下载:Pester
也可以在PowerShell 3.0+的控制台上直接在线下载:
Invoke-WebRequest https://github.com/pester/Pester/archive/master.zip -OutFile Pester-master.zip
在当前目录解压后,文件清单大致为:
PS D:\> cd .\Pester-master PS D:\Pester-master> dir 目录: D:\Pester-master Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2014/2/9 23:50 bin d---- 2014/2/9 23:50 en-US d---- 2014/2/9 23:50 Examples d---- 2014/2/9 23:50 Functions d---- 2014/2/9 23:50 ObjectAdaptations d---- 2014/2/9 23:50 templates d---- 2014/2/9 23:50 vendor -a--- 2014/2/9 23:50 65 .gitattributes -a--- 2014/2/9 23:50 32 .gitignore -a--- 2014/2/9 23:50 679 Build.bat -a--- 2014/2/9 23:50 1580 build.psake.ps1 -a--- 2014/2/9 23:50 2226 CHANGELOG.md -a--- 2014/2/9 23:50 598 LICENSE -a--- 2014/2/9 23:50 1587 Pester.nuspec -a--- 2014/2/9 23:50 6836 Pester.psm1 -a--- 2014/2/9 23:50 3605 README.md
运行测试用例
PS D:\Pester-master> .\bin\pester.bat
运行效果如下图:
调用顺序分析
pester.bat做了两件事情:
- 导入Pester.psm1组件
- 通过Invoke-Pester命令启动测试,测试结果日志输出至: Test.xml
它会将当前目录和子目录中所有的文件名包含“.Tests.”的脚本文件自动搜索出来,执行测试。
本文链接: https://www.pstips.net/pester.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
广播: PSGet在线安装和搜索第三方PowerShell组件 | PowerShell 中文博客
有空能否多写一些关于Pester的文章, 最好结合实际应用的.
最近在学这个, 不过学的很头疼, 很晕. 你在实际环境中在用这个么?