Run helix tests locally (#19031)
This commit is contained in:
parent
d467283e95
commit
b6d433c4b6
|
|
@ -12,17 +12,10 @@ For more info about helix see: [SDK](https://github.com/dotnet/arcade/blob/maste
|
||||||
To run Helix tests for one particular test project:
|
To run Helix tests for one particular test project:
|
||||||
|
|
||||||
```
|
```
|
||||||
cd src/MyCode/test
|
.\eng\scripts\RunHelix.ps1 -Project path\mytestproject.csproj
|
||||||
dotnet msbuild /t:Helix
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To run tests for the entire repo, run:
|
This will restore, and then publish all the test project including some bootstrapping scripts that will install the correct dotnet runtime/sdk before running the test assembly on the helix machine(s), and upload the job to helix.
|
||||||
|
|
||||||
```
|
|
||||||
.\eng\scripts\TestHelix.ps1
|
|
||||||
```
|
|
||||||
|
|
||||||
This will restore, and then publish all of the test projects including some bootstrapping scripts that will install the correct dotnet runtime/sdk before running the test assemblies on the helix machine, and upload the job to helix.
|
|
||||||
|
|
||||||
|
|
||||||
## How do I look at the results of a helix run on Azure Pipelines?
|
## How do I look at the results of a helix run on Azure Pipelines?
|
||||||
|
|
|
||||||
|
|
@ -23,11 +23,6 @@ powershell.exe -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePo
|
||||||
|
|
||||||
set HELIX=%helixQueue%
|
set HELIX=%helixQueue%
|
||||||
|
|
||||||
if (%targetFrameworkIdentifier%==.NETFramework) (
|
|
||||||
xunit.console.exe %target% -xml testResults.xml
|
|
||||||
exit /b %ERRORLEVEL%
|
|
||||||
)
|
|
||||||
|
|
||||||
%DOTNET_ROOT%\dotnet vstest %target% -lt >discovered.txt
|
%DOTNET_ROOT%\dotnet vstest %target% -lt >discovered.txt
|
||||||
find /c "Exception thrown" discovered.txt
|
find /c "Exception thrown" discovered.txt
|
||||||
REM "ERRORLEVEL is not %ERRORLEVEL%" https://blogs.msdn.microsoft.com/oldnewthing/20080926-00/?p=20743/
|
REM "ERRORLEVEL is not %ERRORLEVEL%" https://blogs.msdn.microsoft.com/oldnewthing/20080926-00/?p=20743/
|
||||||
|
|
@ -41,8 +36,8 @@ set exit_code=0
|
||||||
|
|
||||||
set NONQUARANTINE_FILTER="Flaky:All!=true&Flaky:Helix:All!=true&Flaky:Helix:Queue:All!=true&Flaky:Helix:Queue:%HELIX%!=true"
|
set NONQUARANTINE_FILTER="Flaky:All!=true&Flaky:Helix:All!=true&Flaky:Helix:Queue:All!=true&Flaky:Helix:Queue:%HELIX%!=true"
|
||||||
set QUARANTINE_FILTER="Flaky:All=true|Flaky:Helix:All=true|Flaky:Helix:Queue:All=true|Flaky:Helix:Queue:%HELIX%=true"
|
set QUARANTINE_FILTER="Flaky:All=true|Flaky:Helix:All=true|Flaky:Helix:Queue:All=true|Flaky:Helix:Queue:%HELIX%=true"
|
||||||
if (%quarantined%==true) (
|
if %quarantined%==true (
|
||||||
echo Running all tests.
|
echo Running quarantined tests.
|
||||||
%DOTNET_ROOT%\dotnet vstest %target% --logger:xunit --TestCaseFilter:%QUARANTINE_FILTER%
|
%DOTNET_ROOT%\dotnet vstest %target% --logger:xunit --TestCaseFilter:%QUARANTINE_FILTER%
|
||||||
if errorlevel 1 (
|
if errorlevel 1 (
|
||||||
echo Failure in flaky test 1>&2
|
echo Failure in flaky test 1>&2
|
||||||
|
|
|
||||||
|
|
@ -42,12 +42,12 @@
|
||||||
<!-- Items with the type "HelixProperties" will become arbitrary JSON associated with the job -->
|
<!-- Items with the type "HelixProperties" will become arbitrary JSON associated with the job -->
|
||||||
<!-- NOTE: These are global to the whole Job, so don't include project-specific content here. -->
|
<!-- NOTE: These are global to the whole Job, so don't include project-specific content here. -->
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<HelixProperties Include="buildNumber" Value="$(BUILD_BUILDNUMBER)" />
|
<HelixProperties Include="buildNumber" Value="$(BUILD_BUILDNUMBER)" Condition="'$(BUILD_BUILDNUMBER)' != ''" />
|
||||||
<HelixProperties Include="buildId" Value="$(BUILD_BUILDID)" />
|
<HelixProperties Include="buildId" Value="$(BUILD_BUILDID)" Condition="'$(BUILD_BUILDID)' != ''" />
|
||||||
<HelixProperties Include="azdoProject" Value="$(SYSTEM_TEAMPROJECT)" />
|
<HelixProperties Include="azdoProject" Value="$(SYSTEM_TEAMPROJECT)" Condition="'$(SYSTEM_TEAMPROJECT)' != ''" />
|
||||||
<HelixProperties Include="buildDefinition" Value="$(BUILD_DEFINITIONNAME)" />
|
<HelixProperties Include="buildDefinition" Value="$(BUILD_DEFINITIONNAME)" Condition="'$(BUILD_DEFINITIONNAME)' != ''" />
|
||||||
<HelixProperties Include="commitSha" Value="$(BUILD_SOURCEVERSION)" />
|
<HelixProperties Include="commitSha" Value="$(BUILD_SOURCEVERSION)" Condition="'$(BUILD_SOURCEVERSION)' != ''" />
|
||||||
<HelixProperties Include="branch" Value="$(BUILD_SOURCEBRANCH)" />
|
<HelixProperties Include="branch" Value="$(BUILD_SOURCEBRANCH)" Condition="'$(BUILD_SOURCEBRANCH)' != ''" />
|
||||||
<HelixProperties Condition="'$(RunQuarantinedTests)' == 'true'" Include="runType" Value="quarantined" />
|
<HelixProperties Condition="'$(RunQuarantinedTests)' == 'true'" Include="runType" Value="quarantined" />
|
||||||
<HelixProperties Condition="'$(RunQuarantinedTests)' != 'true'" Include="runType" Value="unquarantined" />
|
<HelixProperties Condition="'$(RunQuarantinedTests)' != 'true'" Include="runType" Value="unquarantined" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Runs the specified test project on a Helix machine.
|
||||||
|
.DESCRIPTION
|
||||||
|
This script runs the Helix msbuild task on the given project and publishes then uploads the output and runs tests on the Helix machine(s) passed in.
|
||||||
|
.PARAMETER Project
|
||||||
|
The test project to publish and send to Helix.
|
||||||
|
.PARAMETER HelixQueues
|
||||||
|
Set the Helix queues to use, the list is ';' separated.
|
||||||
|
Some supported queues:
|
||||||
|
Ubuntu.1604.Amd64.Open
|
||||||
|
Ubuntu.1804.Amd64.Open
|
||||||
|
Windows.10.Amd64.Open
|
||||||
|
Windows.81.Amd64.Open
|
||||||
|
Windows.7.Amd64.Open
|
||||||
|
OSX.1014.Amd64.Open
|
||||||
|
Centos.7.Amd64.Open
|
||||||
|
Debian.8.Amd64.Open
|
||||||
|
Debian.9.Amd64.Open
|
||||||
|
Redhat.7.Amd64.Open
|
||||||
|
.PARAMETER RunQuarantinedTests
|
||||||
|
By default quarantined tests are not run. Set this to $true to run only the quarantined tests.
|
||||||
|
#>
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[string]$Project,
|
||||||
|
[string]$HelixQueues = "Windows.10.Amd64.Open",
|
||||||
|
[bool]$RunQuarantinedTests = $false
|
||||||
|
)
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
|
$ProgressPreference = 'SilentlyContinue' # Workaround PowerShell/PowerShell#2138
|
||||||
|
|
||||||
|
Set-StrictMode -Version 1
|
||||||
|
|
||||||
|
$env:BUILD_REASON="PullRequest"
|
||||||
|
$env:BUILD_SOURCEBRANCH="local"
|
||||||
|
$env:BUILD_REPOSITORY_NAME="aspnetcore"
|
||||||
|
$env:SYSTEM_TEAMPROJECT="aspnetcore"
|
||||||
|
|
||||||
|
$HelixQueues = $HelixQueues -replace ";", "%3B"
|
||||||
|
dotnet msbuild $Project /t:Helix /p:IsRequiredCheck=true /p:IsHelixDaily=true /p:HelixTargetQueues=$HelixQueues /p:RunQuarantinedTests=$RunQuarantinedTests
|
||||||
Loading…
Reference in New Issue