温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PowerShell Pester - Code Coverage

发布时间:2020-06-15 22:39:37 来源:网络 阅读:779 作者:beanxyz 栏目:开发技术

今天继续学习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语句的还有一个分支我没有测试


PowerShell Pester - Code Coverage


改变一下脚本的范围,只测试16-18行的内容,那么最后报告表示选择范围的功能已经100%测试过了

PowerShell Pester - Code Coverage

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI