-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerateUnitTestCodeCoverage.ps1
More file actions
66 lines (48 loc) · 2.86 KB
/
generateUnitTestCodeCoverage.ps1
File metadata and controls
66 lines (48 loc) · 2.86 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
param(
$solutionFilePath = "..\Source\Solution.sln",
$unitTestDllFilePath = "..\Source\ProjectTest\bin\Debug\Project.Test.dll",
$openCoverConsole = "..\Packages\OpenCover.4.6.519\tools\OpenCover.Console.exe",
$reportGenerator = "..\Packages\ReportGenerator.3.1.2\tools\ReportGenerator.exe")
$ErrorPreference = 'Stop'
[Environment]::CurrentDirectory = $PWD
$vsTestConsole = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\TestPlatform\vstest.console.exe"
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe"
$openCoverConsole = [System.IO.Path]::GetFullPath($openCoverConsole)
$reportGenerator = [System.IO.Path]::GetFullPath($reportGenerator)
$solutionFilePath = [System.IO.Path]::GetFullPath($solutionFilePath)
$unitTestDllFilePath = [System.IO.Path]::GetFullPath($unitTestDllFilePath)
$outputDirectory = [System.IO.Path]::GetFullPath(".\GeneratedReports")
$testResultDirectory = [System.IO.Path]::GetFullPath(".\TestResults")
$openCoverReport = [System.IO.Path]::GetFullPath("$outputDirectory\openCoverReport.xml")
$codeCoverageReport = [System.IO.Path]::GetFullPath("$outputDirectory\CodeCoverageReport\index.htm")
Write-Output "------------------------------------------------------- removing old reports -------------------------------------------------------"
if (Test-Path "$outputDirectory")
{
Remove-Item -Path "$outputDirectory" -Recurse -Force
}
if (Test-Path "$testResultDirectory")
{
Remove-Item -Path "$testResultDirectory" -Recurse -Force
}
if (Test-Path "$openCoverReport")
{
Remove-Item -Path "$openCoverReport" -Force
}
New-Item -ItemType Directory "$outputDirectory"
Write-Output "`n`n"
Write-Output "------------------------------------------------------- compiling solution -------------------------------------------------------"
Write-Output "`n"
& "$msbuild" "$solutionFilePath" /property:Configuration=Release
Write-Output "------------------------------------------------------- running unit tests -------------------------------------------------------"
Write-Output "`n"
& "$openCoverConsole" -register:user -target:$vsTestConsole -targetargs:"$unitTestDllFilePath /Logger:trx" -filter:"+[*]* -[*.Test]*" -mergebyhash -skipautoprops -output:"$openCoverReport"
Write-Output "`n`n"
Write-Output "------------------------------------------------------- generating code coverage report -------------------------------------------------------"
Write-Output "`n"
& "$reportGenerator" -reports:"$openCoverReport" -targetdir:"$([System.IO.Path]::GetDirectoryName("$codeCoverageReport"))"
& "$codeCoverageReport"
Write-Output "`n`n"
Write-Output "------------------------------------------------------- cleaning up -------------------------------------------------------"
Write-Output "`n"
Remove-Item -Path "$testResultDirectory" -Recurse -Force
Remove-Item -Path "$openCoverReport" -Force