1234567891011121314151617181920212223242526272829303132333435 |
- #!/usr/bin/env pwsh
- <#
- .SYNOPSIS
- Runs unit tests. Outputs test results and code coverage report.
- #>
- # Get path.
- $scriptDir = Split-Path $PSCommandPath -Parent
- $projectDir = (Get-Item $scriptDir).Parent
- # Set working directory to root of project.
- Push-Location $projectDir
- $ExitCode = 0
- # Run unit tests.
- pytest coderedcms/
- $ExitCode = $LastExitCode
- # Print code coverage if succeeded.
- if ($ExitCode -eq 0) {
- [xml]$BranchXML = Get-Content coverage.xml
- $LineRate = [math]::Round([decimal]$BranchXML.coverage.'line-rate' * 100, 2)
- Write-Output "All unit tests passed! 🎉"
- Write-Output "Code coverage: $LineRate%"
- }
- else {
- # Write the error in a way that shows up as the failure reason in Azure Pipelines.
- Write-Host "##vso[task.LogIssue type=error;]Unit tests failed."
- }
- # Unset working directory and exit with pytest's code.
- Pop-Location
- exit $ExitCode
|