Skip to content

Instantly share code, notes, and snippets.

@mmercan
Created December 2, 2019 23:32
Show Gist options
  • Save mmercan/2df9649bd700a64c48172a8e40ca4bba to your computer and use it in GitHub Desktop.
Save mmercan/2df9649bd700a64c48172a8e40ca4bba to your computer and use it in GitHub Desktop.
$expectedPercent=80
$coveredBlocks=0
$skippedBlocks=0
$totalBlocks=0
$codeCoveragePercent=0
write-host "Build id is $env:BUILD_BUILDID"
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/test/codeCoverage?buildId=$($env:BUILD_BUILDID)&flags=1&api-version=5.1-preview.1"
Write-Host "URL: $url"
$pipeline = Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Pipeline = $($pipeline.value | select modules | ConvertTo-Json -Depth 100)"
$Responsemodules = $pipeline.value | select modules
foreach($module in $Responsemodules.modules)
{
$script:coveredBlocks += $module.statistics[0].blocksCovered
$script:skippedBlocks += $module.statistics[0].blocksNotCovered
$tempname = $module.name
$tempTotal =$module.statistics[0].blocksCovered + $module.statistics[0].blocksNotCovered
$tempCodeCoverage = ($module.statistics[0].blocksCovered * 100.0) / $tempTotal
write-host "$tempname % $tempCodeCoverage"
}
write-host "======================================================="
$script:totalBlocks = $script:coveredBlocks + $script:skippedBlocks;
$codeCoveragePercent = ($script:coveredBlocks * 100.0) / $totalBlocks
write-host "overall >> % $codeCoveragePercent"
if($codeCoveragePercent -le $expectedPercent){
Write-Error "coverage less than %$expectedPercent"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment