Run FullCLR sanitary tests in AppVeyor

This change brings a very minimal set of tests and make
build fail, if we cannot load some PS assamblies on FullCLR

We should increase test coverage for FullCLR in future.
This commit is contained in:
Sergei Vorobev
2016-02-03 17:29:27 -08:00
parent 1268b76dcd
commit 2096bca2b8
2 changed files with 46 additions and 1 deletions
+14 -1
View File
@@ -25,10 +25,23 @@ build_script:
test_script:
- ps: |
# CoreCLR
$testResultsFile = ".\TestsResults.xml"
.\bin\powershell.exe --noprofile -c "Invoke-Pester test/powershell -OutputFormat NUnitXml -OutputFile $testResultsFile"
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
# For now we don't fail the build if these tests failed
#
# FullCLR
Import-Module .\PowerShellGithubDev.psm1
$testResultsFile = ".\TestsResults.FullCLR.xml"
Start-DevPSGithub -binDir $pwd\binFull -NoNewWindow -ArgumentList '-command', 'Import-Module .\test\Pester; Invoke-Pester test/fullCLR -OutputFormat NUnitXml -OutputFile $testResultsFile'
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
# we want to fail the build, if these tests failed
$x = [xml](cat -raw .\TestsResults.FullCLR.xml)
if ([int]$x.'test-results'.failures -gt 0)
{
throw "$($x.'test-results'.failures) tests in test/fullCLR failed"
}
deploy_script:
- ps: |
@@ -0,0 +1,32 @@
Describe 'PowerShellGithubDev.psm1 and powershell.exe' {
Context '$env:DEVPATH assemblies loading' {
It 'has $env:DEVPATH set' {
$env:DEVPATH | Should Not Be $null
}
It 'loads System.Management.Automation.dll' {
[psobject].Assembly.Location | Should Be (
Join-Path $env:DEVPATH System.Management.Automation.dll)
}
It 'loads Microsoft.PowerShell.Commands.Management.dll' {
[Microsoft.PowerShell.Commands.GetChildItemCommand].Assembly.Location | Should Be (
Join-Path $env:DEVPATH Microsoft.PowerShell.Commands.Management.dll)
}
It 'loads Microsoft.PowerShell.Commands.Utility.dll' {
[Microsoft.PowerShell.Commands.UtilityResources].Assembly.Location | Should Be (
Join-Path $env:DEVPATH Microsoft.PowerShell.Commands.Utility.dll)
}
It 'loads Microsoft.PowerShell.ConsoleHost.dll' {
[Microsoft.PowerShell.ConsoleShell].Assembly.Location | Should Be (
Join-Path $env:DEVPATH Microsoft.PowerShell.ConsoleHost.dll)
}
It 'loads Microsoft.PowerShell.Security.dll' {
[Microsoft.PowerShell.Commands.SecurityDescriptorCommandsBase].Assembly.Location | Should Be (
Join-Path $env:DEVPATH Microsoft.PowerShell.Security.dll)
}
}
}