-
Notifications
You must be signed in to change notification settings - Fork 65
/
install_vstest_console_logger.ps1
61 lines (48 loc) · 2.3 KB
/
install_vstest_console_logger.ps1
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
Write-Host "Installing AppVeyor logger for VSTest.Console..." -ForegroundColor Cyan
# find VS2017 vstest.console home
$vs2017ExtensionsPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions"
$vstestConsolePath = (Get-ChildItem -Path $vs2017ExtensionsPath -Filter vstest.console.exe -Recurse -ErrorAction SilentlyContinue)
$vs2013TestWindowPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$vs2015TestWindowPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
$vs2017TestWindowPath = $vstestConsolePath.DirectoryName
$vs2013Path = "$vs2013TestWindowPath\Extensions"
$vs2015Path = "$vs2015TestWindowPath\Extensions"
$vs2017Path = "$vs2017TestWindowPath\Extensions"
Remove-Path $vs2013TestWindowPath
Remove-Path $vs2015TestWindowPath
Remove-Path $vs2017TestWindowPath
$zipPath = "$($env:TEMP)\Appveyor.MSTestLogger.zip"
(New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.zip', $zipPath)
if(Test-Path $vs2013Path) {
# VS 2013
Remove-Item "$vs2013Path\appveyor.*" -Force
7z x $zipPath -y -o"$vs2013Path" | Out-Null
}
if(Test-Path $vs2015Path) {
# VS 2015
Remove-Item "$vs2015Path\appveyor.*" -Force
7z x $zipPath -y -o"$vs2015Path" | Out-Null
}
if(Test-Path $vs2017Path) {
# VS 2017
Remove-Item "$vs2017Path\appveyor.*" -Force
$zipPath2 = "$($env:TEMP)\Appveyor.MSTestLogger.VS2017.zip"
(New-Object Net.WebClient).DownloadFile('http://www.appveyor.com/downloads/Appveyor.MSTestLogger.VS2017.zip', $zipPath2)
7z x $zipPath2 -y -o"$vs2017Path" | Out-Null
del $zipPath2
# MSTest Adapter
$tempPath = "$env:TEMP\MSTestAdapter"
nuget install MSTest.TestAdapter -version 1.1.4-preview -prerelease -excludeversion -outputdirectory $tempPath
copy "$tempPath\MSTest.TestAdapter\build\_common\*" $vs2017Path -Force
del $tempPath -Recurse -Force
}
del $zipPath
# modify PATH
if(Test-Path $vs2017Path) {
Add-Path $vs2017TestWindowPath
} elseif (Test-Path $vs2015Path) {
Add-Path $vs2015TestWindowPath
} else {
Add-Path $vs2013TestWindowPath
}
Write-Host "AppVeyor VSTest.Console logger installed" -ForegroundColor Green