multi-proc test execution

This commit is contained in:
Piotr Puszkiewicz 2016-08-09 15:19:34 -07:00
parent e08da40a1f
commit 43c5a2c59b
4 changed files with 49 additions and 34 deletions

View file

@ -5,14 +5,14 @@
<PropertyGroup>
<BinaryToCorehostifyRelDir>runtimes/any/native</BinaryToCorehostifyRelDir>
<CoreSDKDir>$(RepoRoot)/resources/MSBuildImports</CoreSDKDir>
<MSBuildImportsDir>$(RepoRoot)/resources/MSBuildImports</MSBuildImportsDir>
</PropertyGroup>
<ItemGroup>
<PublishOutputExtensions Include="$(ExeExtension);.dll;.pdb;.deps.json;.runtimeconfig.json" />
<FilesToMove Include="$(BinaryToCorehostifyRelDir)/csc.exe;$(BinaryToCorehostifyRelDir)/MSBuild.exe;" />
<BundledTools Include="csc;MSBuild;NuGet.CommandLine.XPlat;dotnet" />
<CoreSDKContent Include="$(CoreSDKDir)/**/*" />
<MSBuildImportsContent Include="$(MSBuildImportsDir)/**/*" />
</ItemGroup>
<Target Name="Compile" DependsOnTargets="Prepare;
@ -165,7 +165,7 @@
DestinationFiles="$(SdkOutputDirectory)/$(HostPolicyBaseName)" />
<!-- copy core sdk -->
<Copy SourceFiles="@(CoreSDKContent)"
<Copy SourceFiles="@(MSBuildImportsContent)"
DestinationFolder="$(SdkOutputDirectory)/%(RecursiveDir)" />
<!-- Crossgen the Shared Framework -->

View file

@ -10,7 +10,7 @@
<Import Project="test/TestAssetProjects.targets" />
<Import Project="test/TestProjects.targets" />
<Target Name="Test"
<Target Name="Test"
DependsOnTargets="PrepareTests;
BuildTestAssets;
BuildTests;">
@ -27,13 +27,28 @@
<TestTaskEnvironmentVariables Include="TEST_ARTIFACTS=$(TestArtifactsEnv)" />
</ItemGroup>
<DotNetTest WorkingDirectory="%(TestProjects.ProjectDir)"
EnvironmentVariables="@(TestTaskEnvironmentVariables)"
ToolPath="$(Stage2Directory)"
Configuration="$(Configuration)"
NoBuild="True"
NoTrait="category=failing"
Xml="$(TestResultXmlDir)/%(TestProjects.OutputName)-testResults.xml" />
<PropertyGroup>
<RunTestEnvironmentVariables>@(TestTaskEnvironmentVariables)</RunTestEnvironmentVariables>
</PropertyGroup>
<ItemGroup>
<ProjectsToTest Include="build/test/RunTest.proj">
<Properties>
CLIBuildDll=$(CLIBuildDll);
Configuration=$(Configuration);
EnvironmentVariables=$(RunTestEnvironmentVariables);
TestProjectName=%(TestProjects.OutputName);
TestResultXmlDir=$(TestResultXmlDir);
ToolPath=$(Stage2Directory);
WorkingDirectory=%(TestProjects.ProjectDir)
</Properties>
</ProjectsToTest>
</ItemGroup>
<MSBuild
BuildInParallel="True"
Projects="@(ProjectsToTest)">
</MSBuild>
</Target>
<Target Name="PrepareTests"
@ -50,7 +65,7 @@
</PropertyGroup>
</Target>
<Target Name="BuildTests"
<Target Name="BuildTests"
DependsOnTargets="RestoreTests;
SetupTestProjectData;"
Inputs="%(TestProjects.BuildInputs)"
@ -70,18 +85,18 @@
<CallTarget Targets="CleanTestProjectsLockFiles"/>
<DotNetRestore FallbackSource="$(TestPackagesDir)"
ToolPath="$(DotnetUnderTest)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(TestDirectory)" />
</Target>
<Target Name="CleanTestProjectsBinObj"
DependsOnTargets="SetupRestoreTestsInputs;"
<Target Name="CleanTestProjectsBinObj"
DependsOnTargets="SetupRestoreTestsInputs;"
Inputs="@(RestoreTestsInputs)"
Outputs="@(RestoreTestsInputs->'%(RelativeDir)project.lock.json')">
<ItemGroup>
<FilesToDelete Include="$(TestDirectory)**/bin/**/*.*" />
<FilesToDelete Include="$(TestDirectory)**/obj/**/*.*" />
</ItemGroup>
</ItemGroup>
<Delete Files="@(FilesToDelete)" />
@ -122,7 +137,7 @@
Outputs="@(RestoreTestAssetProjectsInputs->'%(RelativeDir)/project.lock.json')">
<DotNetRestore FallbackSource="$(TestPackagesDir)"
ToolPath="$(DotnetUnderTest)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(RepoRoot)TestAssets/TestProjects/" />
</Target>
@ -136,23 +151,23 @@
<ItemGroup>
<TestAssetProjectsLockFiles Include="$(RepoRoot)/TestAssets/TestProjects/**/project.lock.json" />
</ItemGroup>
<Delete Files="@(TestAssetProjectsLockFiles)" />
<Delete Files="@(TestAssetProjectsLockFiles)" />
</Target>
<Target Name="CleanTestProjectsLockFiles" >
<ItemGroup>
<TestProjectsLockFiles Include="$(RepoRoot)/test/**/project.lock.json" />
</ItemGroup>
<Delete Files="@(TestProjectsLockFiles)" />
<Delete Files="@(TestProjectsLockFiles)" />
</Target>
<Target Name="BuildDesktopTestAssetProjects"
Condition=" '$(IsDesktopAvailable)' == 'True' "
<Target Name="BuildDesktopTestAssetProjects"
Condition=" '$(IsDesktopAvailable)' == 'True' "
DependsOnTargets="RestoreDesktopTestAssetProjects">
<ItemGroup>
<NoAutoBuildDesktopTestAssets Include="$(RepoRoot)TestAssets\DesktopTestProjects\**\.noautobuild" />
<NoAutoBuildDesktopTestAssetProjects Include="%(NoAutoBuildDesktopTestAssets.RelativeDir)project.json" />
<BuildableDesktopTestAssetProjects Include="$(RepoRoot)TestAssets\DesktopTestProjects\**\project.json"
<BuildableDesktopTestAssetProjects Include="$(RepoRoot)TestAssets\DesktopTestProjects\**\project.json"
Exclude="@(NoAutoBuildDesktopTestAssetProjects)" />
</ItemGroup>
@ -167,14 +182,14 @@
</Target>
<Target Name="RestoreDesktopTestAssetProjects"
Condition=" '$(IsDesktopAvailable)' == 'True' "
Condition=" '$(IsDesktopAvailable)' == 'True' "
DependsOnTargets="CreateTestAssetPackageNuPkgs;
SetupRestoreDesktopTestAssetProjectsInputs;"
Inputs="@(RestoreDesktopTestAssetProjectsInputs)"
Outputs="@(RestoreDesktopTestAssetProjectsInputs->'%(RelativeDir)/project.lock.json')">
<DotNetRestore FallbackSource="$(TestPackagesDir)"
ToolPath="$(DotnetUnderTest)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(RepoRoot)TestAssets\DesktopTestProjects\" />
</Target>
@ -184,7 +199,7 @@
</ItemGroup>
</Target>
<Target Name="CreateTestAssetPackageNuPkgs"
<Target Name="CreateTestAssetPackageNuPkgs"
DependsOnTargets="BuildTestAssetPackageProjects;
SetupTestPackageProjectData;"
Inputs="%(TestPackageProject.PackInputs)"
@ -210,14 +225,14 @@
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="%(BuildableTestAssetProjects.RelativeDir)" />
</Target>
<Target Name="RestoreTestAssetPackageProjects"
<Target Name="RestoreTestAssetPackageProjects"
DependsOnTargets="PrepareTests;
SetupRestoreTestAssetPackageProjectsInputs;"
SetupRestoreTestAssetPackageProjectsInputs;"
Inputs="@(RestoreTestAssetPackageProjectsInputs)"
Outputs="@(RestoreTestAssetPackageProjectsInputs->'%(RelativeDir)/project.lock.json')">
<DotNetRestore ToolPath="$(DotnetUnderTest)"
<DotNetRestore ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(RepoRoot)/TestAssets/TestPackages/" />
</Target>

View file

@ -71,10 +71,10 @@ $env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
if ($NoBuild)
{
Write-Host "Not building due to --nobuild"
Write-Host "Command that would be run: 'dotnet build3 build.proj /p:Architecture=$Architecture $ExtraParameters'"
Write-Host "Command that would be run: 'dotnet build3 build.proj /m /p:Architecture=$Architecture $ExtraParameters'"
}
else
{
dotnet build3 build.proj /p:Architecture=$Architecture $ExtraParameters
dotnet build3 build.proj /m /p:Architecture=$Architecture $ExtraParameters
if($LASTEXITCODE -ne 0) { throw "Failed to build" }
}

View file

@ -117,8 +117,8 @@ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
echo "${args[@]}"
if [ $BUILD -eq 1 ]; then
dotnet build3 build.proj /p:Architecture=$ARCHITECTURE "${args[@]}"
dotnet build3 build.proj /m /p:Architecture=$ARCHITECTURE "${args[@]}"
else
echo "Not building due to --nobuild"
echo "Command that would be run is: 'dotnet build3 build.proj /p:Architecture=$ARCHITECTURE ${args[@]}'"
echo "Command that would be run is: 'dotnet build3 build.proj /m /p:Architecture=$ARCHITECTURE ${args[@]}'"
fi