Created
May 27, 2016 19:42
-
-
Save Xainey/2a5acea74ea53e008fe603a8413b2dea to your computer and use it in GitHub Desktop.
VSCode Posh Tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// A task runner that invokes Pester to run all Pester tests under the | |
// current workspace folder. | |
// NOTE: This Test task runner requires an updated version of Pester (>=3.4.0) | |
// in order for the problemMatcher to find failed test information (message, line, file). | |
// If you don't have that version, you can update Pester from the PowerShell Gallery | |
// with this command: | |
// | |
// PS C:\> Update-Module Pester | |
// | |
// If that gives an error like: | |
// "Module 'Pester' was not installed by using Install-Module, so it cannot be updated." | |
// then execute: | |
// | |
// PS C:\> Install-Module Pester -Scope CurrentUser -Force | |
// | |
// NOTE: The Clean, Build and Publish tasks require PSake. PSake can be installed | |
// from the PowerShell Gallery with this command: | |
// | |
// PS C:\> Install-Module PSake -Scope CurrentUser -Force | |
// | |
// Available variables which can be used inside of strings. | |
// ${workspaceRoot}: the root folder of the team | |
// ${file}: the current opened file | |
// ${fileBasename}: the current opened file's basename | |
// ${fileDirname}: the current opened file's dirname | |
// ${fileExtname}: the current opened file's extension | |
// ${cwd}: the current working directory of the spawned process | |
{ | |
"version": "0.1.0", | |
// Start PowerShell | |
"command": "${env.windir}\\sysnative\\windowspowershell\\v1.0\\PowerShell.exe", | |
// The command is a shell script | |
"isShellCommand": true, | |
// Show the output window always | |
"showOutput": "always", | |
"args": [ | |
"-NoProfile", | |
"-ExecutionPolicy", | |
"bypass" | |
], | |
// Associate with test task runner | |
"tasks": [ | |
{ | |
"taskName": "Clean", | |
"suppressTaskName": true, | |
"showOutput": "always", | |
"args": [ | |
"Write-Host 'Invoking PSake...'; Invoke-PSake build.ps1 -taskList Clean;", | |
"Invoke-Command { Write-Host 'Completed Clean task in task runner.' }" | |
] | |
}, | |
{ | |
"taskName": "Build", | |
"suppressTaskName": true, | |
"isBuildCommand": true, | |
"showOutput": "always", | |
"args": [ | |
"Write-Host 'Invoking PSake...'; Invoke-PSake build.ps1 -taskList Build;", | |
"Invoke-Command { Write-Host 'Completed Build task in task runner.' }" | |
] | |
}, | |
{ | |
"taskName": "Publish", | |
"suppressTaskName": true, | |
"showOutput": "always", | |
"args": [ | |
"Write-Host 'Invoking PSake...'; Invoke-PSake build.ps1 -taskList Publish;", | |
"Invoke-Command { Write-Host 'Completed Publish task in task runner.' }" | |
] | |
}, | |
{ | |
"taskName": "Test", | |
"suppressTaskName": true, | |
"isTestCommand": true, | |
"showOutput": "always", | |
"args": [ | |
// (╯°□°)╯︵ ┻━┻ | |
"Set-ItemProperty -Path HKLM:\\Software\\Policies\\Microsoft\\Windows\\PowerShell -Name ExecutionPolicy -Value Unrestricted;", | |
"$env:PSExecutionPolicyPreference = 'Unrestricted';", | |
"Write-Host 'Invoking Pester...'; Invoke-Pester ./Tests/Unit* -PesterOption @{IncludeVSCodeMarker=$true};", | |
"Invoke-Command { Write-Host 'Completed Test task in task runner.' }" | |
], | |
"problemMatcher": [ | |
{ | |
"owner": "powershell", | |
"fileLocation": [ | |
"absolute" | |
], | |
"severity": "error", | |
"pattern": [ | |
{ | |
"regexp": "^\\s*(\\[-\\]\\s*.*?)(\\d+)ms\\s*$", | |
"message": 1 | |
}, | |
{ | |
"regexp": "^\\s+at\\s+[^,]+,\\s*(.*?):\\s+line\\s+(\\d+)$", | |
"file": 1, | |
"line": 2 | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment