86706d7698
Moves the tests from using the `vstest.console.exe` route to just using `te.exe`. PROs: - `te.exe` is significantly faster for running tests because the TAEF/VSTest adapter isn't great. - Running through `te.exe` is closer to what our developers are doing on their dev boxes - `te.exe` is how they run in the Windows gates. - `te.exe` doesn't seem to have the sporadic `0x6` error code thrown during the tests where somehow the console handles get lost - `te.exe` doesn't seem to repro the other intermittent issues that we have been having that are inscrutable. - Fewer processes in the tree (te is running anyway under `vstest.console.exe`, just indirected a lot - The log outputs scroll live with all our logging messages instead of suppressing everything until there's a failure - The log output is actually in the order things are happening versus vstest. CONs: - No more code coverage. - No more test records in the ADO build/test panel. - Tests really won't work inside Visual Studio at all. - The log files are really big now - Testing is not a test task anymore, just another script. Refuting each CON: - We didn't read the code coverage numbers - We didn't look at the ADO test panel results or build-over-build velocities - Tests didn't really work inside Visual Studio anyway unless you did the right incantations under the full moon. - We could tone down the logging if we wanted at either the te.exe execution time (with a switch) or by declaring properties in the tests/classes/modules that are very verbose to not log unless it fails. - I don't think anyone cares how they get run as long as they do.
99 lines
3.3 KiB
YAML
99 lines
3.3 KiB
YAML
parameters:
|
|
additionalBuildArguments: ''
|
|
|
|
steps:
|
|
- checkout: self
|
|
submodules: true
|
|
clean: true
|
|
|
|
- task: NuGetToolInstaller@0
|
|
displayName: Ensure NuGet 4.8.1
|
|
inputs:
|
|
versionSpec: 4.8.1
|
|
|
|
- task: VisualStudioTestPlatformInstaller@1
|
|
displayName: Ensure VSTest Platform
|
|
|
|
# In the Microsoft Azure DevOps tenant, NuGetCommand is ambiguous.
|
|
# This should be `task: NuGetCommand@2`
|
|
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2
|
|
displayName: Restore NuGet packages
|
|
inputs:
|
|
command: restore
|
|
feedsToUse: config
|
|
configPath: NuGet.config
|
|
restoreSolution: OpenConsole.sln
|
|
restoreDirectory: '$(Build.SourcesDirectory)\packages'
|
|
|
|
- task: VSBuild@1
|
|
displayName: 'Build solution **\OpenConsole.sln'
|
|
inputs:
|
|
solution: '**\OpenConsole.sln'
|
|
vsVersion: 16.0
|
|
platform: '$(BuildPlatform)'
|
|
configuration: '$(BuildConfiguration)'
|
|
msbuildArgs: "${{ parameters.additionalBuildArguments }}"
|
|
clean: true
|
|
maximumCpuCount: true
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Check MSIX for common regressions'
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
$Package = Get-ChildItem -Recurse -Filter "CascadiaPackage_*.msix"
|
|
.\build\scripts\Test-WindowsTerminalPackage.ps1 -Verbose -Path $Package.FullName
|
|
|
|
- task: powershell@2
|
|
displayName: 'Source Index PDBs'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: build\scripts\Index-Pdbs.ps1
|
|
arguments: -SearchDir '$(Build.SourcesDirectory)' -SourceRoot '$(Build.SourcesDirectory)' -recursive -Verbose -CommitId $(Build.SourceVersion)
|
|
errorActionPreference: silentlyContinue
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Rationalize build platform'
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
$Arch = "$(BuildPlatform)"
|
|
If ($Arch -Eq "x86") { $Arch = "Win32" }
|
|
Write-Host "##vso[task.setvariable variable=RationalizedBuildPlatform]${Arch}"
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Run Unit Tests'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: build\scripts\Run-Tests.ps1
|
|
arguments: -MatchPattern '*unit.test*.dll' -Platform '$(RationalizedBuildPlatform)' -Configuration '$(BuildConfiguration)'
|
|
condition: and(succeeded(), or(eq(variables['BuildPlatform'], 'x64'), eq(variables['BuildPlatform'], 'x86')))
|
|
|
|
- task: PowerShell@2
|
|
displayName: 'Run Feature Tests (x64 only)'
|
|
inputs:
|
|
targetType: filePath
|
|
filePath: build\scripts\Run-Tests.ps1
|
|
arguments: -MatchPattern '*feature.test*.dll' -Platform '$(RationalizedBuildPlatform)' -Configuration '$(BuildConfiguration)'
|
|
condition: and(succeeded(), eq(variables['BuildPlatform'], 'x64'))
|
|
|
|
- task: CopyFiles@2
|
|
displayName: 'Copy *.appx/*.msix to Artifacts (Non-PR builds only)'
|
|
inputs:
|
|
Contents: |
|
|
**/*.appx
|
|
**/*.msix
|
|
**/*.appxsym
|
|
!**/Microsoft.VCLibs*.appx
|
|
TargetFolder: '$(Build.ArtifactStagingDirectory)/appx'
|
|
OverWrite: true
|
|
flattenFolders: true
|
|
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|
|
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: 'Publish Artifact (appx) (Non-PR builds only)'
|
|
inputs:
|
|
PathtoPublish: '$(Build.ArtifactStagingDirectory)/appx'
|
|
ArtifactName: 'appx-$(BuildConfiguration)'
|
|
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
|