This repository was archived by the owner on Jun 21, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Expand file tree
/
Copy pathRun-CodeCoverage.ps1
More file actions
83 lines (69 loc) · 2.72 KB
/
Copy pathRun-CodeCoverage.ps1
File metadata and controls
83 lines (69 loc) · 2.72 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<#
.SYNOPSIS
Runs NUnit
#>
[CmdletBinding()]
Param(
[string]
$Configuration
,
[switch]
$AppVeyor = $false
)
$scriptsDirectory = $PSScriptRoot
$rootDirectory = Split-Path ($scriptsDirectory)
. $scriptsDirectory\modules.ps1 | out-null
$nunitDirectory = Join-Path $rootDirectory packages\NUnit.ConsoleRunner.3.7.0\tools
$nunitConsoleRunner = Join-Path $nunitDirectory nunit3-console.exe
$testAssemblies = @(
"test\GitHub.Api.UnitTests\bin\$Configuration\net461\GitHub.Api.UnitTests.dll",
"test\GitHub.App.UnitTests\bin\$Configuration\net461\GitHub.App.UnitTests.dll",
"test\GitHub.Exports.Reactive.UnitTests\bin\$Configuration\net461\GitHub.Exports.Reactive.UnitTests.dll",
"test\GitHub.Exports.UnitTests\bin\$Configuration\net461\GitHub.Exports.UnitTests.dll",
"test\GitHub.Extensions.UnitTests\bin\$Configuration\net461\GitHub.Extensions.UnitTests.dll",
"test\GitHub.InlineReviews.UnitTests\bin\$Configuration\net461\GitHub.InlineReviews.UnitTests.dll",
"test\GitHub.TeamFoundation.UnitTests\bin\$Configuration\net461\GitHub.TeamFoundation.UnitTests.dll",
"test\GitHub.UI.UnitTests\bin\$Configuration\net461\GitHub.UI.UnitTests.dll",
"test\GitHub.VisualStudio.UnitTests\bin\$Configuration\net461\GitHub.VisualStudio.UnitTests.dll",
"test\MetricsTests\MetricsTests\bin\$Configuration\MetricsTests.dll",
"test\TrackingCollectionTests\bin\$Configuration\net461\TrackingCollectionTests.dll"
)
$opencoverTargetArgs = ($testAssemblies -join " ") + " --where \`"cat!=Timings and cat!=CodeCoverageFlake\`" --inprocess --noresult"
$opencoverDirectory = Join-Path $env:USERPROFILE .nuget\packages\opencover\4.6.519\tools
$opencover = Join-Path $opencoverDirectory OpenCover.Console.exe
$opencoverArgs = @(
"-target:`"$nunitConsoleRunner`"",
"-targetargs:`"$opencoverTargetArgs`"",
"-filter:`"+[GitHub*]* -[GitHub*Unit]GitHub.*.SampleData -[GitHub*UnitTests]*`"",
"-excludebyfile:*.xaml;*.xaml.cs",
"-register:user -output:$rootDirectory\coverage.xml"
) -join " "
$codecovDirectory = Join-Path $env:USERPROFILE .nuget\packages\codecov\1.1.0\tools
$codecov = Join-Path $codecovDirectory codecov.exe
$codecovArgs = "-f $rootDirectory\coverage.xml"
& {
Trap {
Write-Output "OpenCover trapped"
exit 0
}
Write-Output $opencover
Run-Process 600 $opencover $opencoverArgs
if (!$?) {
Write-Output "OpenCover failed"
exit 0
}
}
if($AppVeyor) {
& {
Trap {
Write-Output "Codecov trapped"
exit 0
}
Push-AppveyorArtifact "$rootDirectory\coverage.xml"
Run-Process 300 $codecov $codecovArgs
if (!$?) {
Write-Output "Codecov failed"
exit 0
}
}
}