PowerShell Pester - Code Coverage
今天继续学习Pester,invoke-pester有一个很nb的选项叫codeCoverage,可以指定需要测试的脚本,function甚至某一个片段的范围,然后他会告诉你这个范围内的功能是否都测试过了。
来个实例看看,豆子直接在上一篇的脚本里面添加了一个switchtest的function,然后测试了其中一个if的功能
Test.ps1
function add {
param(
[int]$a,
[int]$b
)
$sum=$a+$b
$sum
}
function switchtest{
param(
[switch]$switch
)
if($switch){
return "Switch is On"
}
else{
return "Switch is Off"
}
}
Test.tests.ps1$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
. "$here\$sut"
Describe "Test" {
Context "Should be test"{
It "Add 1 and 2 is equal to 3" {
add 1 2 | Should Be 3
}
It "Add -1 and 2 is not equal to 0" {
add -1 2 | Should not Be 0
}
It "Test Switch option"{
switchtest -switch | Should be "Switch is on"
}
}
Context "Should BeExactly test"{
It "HostName" {
hostname | Should beexactly "yli-ise"
}
}
Context "Should BeGreaterThan test"{
It "PsVersion is above 3" {
$PSVersionTable.PSVersion.Major | Should beGreaterThan 3
}
}
Context "Should beOfType test"{
It "Get-ADUser type"{
Get-aduser yli | Should beoftype Microsoft.ActiveDirectory.Management.ADUser
}
}
Context "Should Exist test"{
It "C:\temp exist"{
"c:\temp" | should exist
}
}
Context "Should match test"{
It "Find Email"{
"jksjsjsjssdjs abc.xyz@yahoo.com hsosofs" | should match "[a-z0-9!#\$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#\$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"
}
}
Context "Should Throw test" {
It "Get a non-exist Process"{
{Get-Process -Name "!@#$%&" -ErrorAction Stop} | Should Throw
}
}
Context "Should BeNullorEmpty test"{
It "Get something from test folder"{
get-childitem C:\temp | should not benullorempty
}
}
}
执行看看,最后他告诉我在我指定的脚本里面,只完成了80%的测试,因为if语句的还有一个分支我没有测试
改变一下脚本的范围,只测试16-18行的内容,那么最后报告表示选择范围的功能已经100%测试过了
阅读更多- 使用Intel编译器(5)PGO(5)PGO工具之代码覆盖工具(code coverage)2
- JUnit测试:让代码覆盖率(Code Coverage)报表显示每个方法的覆盖情况
- Effective Java提升Code Coverage代码涵盖率 - 就是爱Java
- Visual Studio Team System 对Unmanaged code 的Code Coverage支持
- Effective Java提升Code Coverage代码涵盖率 - 就是爱Java
- Code Coverage
- code coverage
- code coverage
- Code coverage
- 代码覆盖率 (Code Coverage)从简到繁 (一)
- 代码覆盖率 (Code Coverage)从简到繁 (一)
- visual studio 2010单元测试--代码覆盖率配置(code coverage)
- 多少code coverage是足够的?
- Code UI Test中测试code coverage需要什么条件?
- 代码覆盖率 (Code Coverage)从简到繁 (一)
- Code UI Test如何配置code coverage(启用及选择所包括的文件)
- gcov lcov进行 android apk项目的 code coverage 代码覆盖率检测
- Code coverage并非万能的
- LLVM中code coverage检测工具llvm-cov的使用
- Code Coverage -- Cobertura