-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCheckCodeCoverage.ps1
More file actions
38 lines (31 loc) · 2.43 KB
/
CheckCodeCoverage.ps1
File metadata and controls
38 lines (31 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[ValidateScript({ Test-Path -Path $_ -PathType Leaf })]
[string] $Path
)
$html= gc $Path
$lineCoverageRequired = [double]90.0
$patternBranchCoverage = '(?i)<tr><th>Branch coverage:</th><td>(.*)%</td>'
$branchCoverageText = [Regex]::Matches($html, $patternBranchCoverage)
$branchCoverageText = $branchCoverageText[0].Groups[1].Value
$branchCoverageText = $branchCoverageText.Split("%")[0]
$branchCoverage = [double]$branchCoverageText
$lineCoveragePattern = '(?i)<tr><th>Line Coverage:</th><td>(.*)%</td>'
$lineCoverageText = [Regex]::Matches($html, $lineCoveragePattern)
$lineCoverageText = $lineCoverageText[0].Groups[1].Value
$lineCoverageText = $lineCoverageText.Split("%")[0]
$lineCoverage = [double]$lineCoverageText
Write-Host "Line Coverage : " $lineCoverage"%"
Write-Host "Branch Coverage: " $branchCoverage"%"
If ($lineCoverage -lt $lineCoverageRequired)
{
$Message = "Error: Current line code coverage is " + $lineCoverage + "% but the required coverage is " + $lineCoverageRequired + "%!";
Write-Host ""
throw $Message
}
Else
{
Write-Host -NoNewline -ForegroundColor Green "Done!"
Write-Host
}