博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PowerShell Pester - Code Coverage
阅读量:6407 次
发布时间:2019-06-23

本文共 1900 字,大约阅读时间需要 6 分钟。

今天继续学习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%测试过了

转载地址:http://dutea.baihongyu.com/

你可能感兴趣的文章
kvm中虚拟机的硬盘扩容
查看>>
Android (Launch Mode) 四种启动模式
查看>>
透视学理论(二)
查看>>
Dubbo/HSF在Service Mesh下的思考和方案
查看>>
Django form表单
查看>>
CTYL-9.14(tomcat端口与阿里云安全组,域名与tomcat配置,域名与反向代理)
查看>>
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>
es6 class 笔记
查看>>
简单的Spark+Mysql整合开发
查看>>
阿里java面试经验大汇总(附阿里职位需求)
查看>>
Python全套零基础视频教程+软件2018最新编程视频!
查看>>
内存管理之1:x86段式内存管理与保护模式
查看>>
20180925上课截图
查看>>
IO输入/输出流的简单总结
查看>>
JavaScript之DOM-9 HTML DOM(HTML DOM概述、常用HTML DOM对象、HTML表单)
查看>>
技术成长之路(一)
查看>>
中国北方国际五金城硬件选型
查看>>
Discuz X2 [Type] 查询语句安全威胁
查看>>
php.exe启动时提示缺少MVCR110.dall 64位 window系统 解决
查看>>