<Project ToolsVersion="14.0" DefaultTargets="Test"> <Import Project="test/TestPackageProjects.targets" /> <Import Project="test/TestProjects.targets" /> <PropertyGroup> <PathListSeparator>:</PathListSeparator> <PathListSeparator Condition=" '$(OSName)' == 'win' ">%3b</PathListSeparator> <ExecPath>$(OutputDirectory)$(PathListSeparator)$(PATH)</ExecPath> <ExecPath Condition=" '$(OSName)' == 'win' ">$(OutputDirectory)</ExecPath> <TestPackagesDir>$(TestOutputDir)/packages/</TestPackagesDir> <TestArtifactsDir>$(TestOutputDir)/artifacts/</TestArtifactsDir> <TestResultXmlDir>$(TestOutputDir)/results/</TestResultXmlDir> </PropertyGroup> <Target Name="Test" Condition=" '$(CLIBUILD_SKIP_TESTS)' != 'true' " DependsOnTargets="TestsForBuildItself;BuildTests;"> <!-- Make ure the test packages directory exists so that it's not an error to have it as a package source --> <MakeDir Directories="$(TestPackagesDir)" /> <ItemGroup> <ProjectsToTest Include="build/test/RunTest.proj"> <Properties> CLIBuildDll=$(CLIBuildDll); Configuration=$(Configuration); TestArtifactsDir=$(TestArtifactsDir); TestPackagesDir=$(TestPackagesDir); PreviousStageProps=$(NextStagePropsPath); TestProject=%(TestProjects.Identity); TestResultXmlDir=$(TestResultXmlDir); ToolPath=$(OutputDirectory); WorkingDirectory=$([System.IO.Directory]::GetParent(%(TestProjects.Identity))) </Properties> </ProjectsToTest> </ItemGroup> <Message Text="Starting test execution" Importance="High" /> <MSBuild BuildInParallel="True" Projects="@(ProjectsToTest)"> </MSBuild> <Message Text="Finished test execution" Importance="High" /> </Target> <Target Name="PrepareTests" DependsOnTargets="Init; SetupTestProjectData"> <MakeDir Directories="$(TestPackagesDir)" Condition="!Exists('$(TestPackagesDir)')"/> </Target> <Target Name="RestoreTests" DependsOnTargets="PrepareTests; CreateTestAssetPackageNuPkgs;"> <DotNetRestore ToolPath="$(OutputDirectory)" ProjectPath=""$(TestDirectory)/Microsoft.DotNet.Cli.Tests.sln"" AdditionalParameters="/p:PreviousStageProps=$(NextStagePropsPath)" /> </Target> <Target Name="BuildTests" DependsOnTargets="RestoreTests;"> <DotNetBuild ToolPath="$(OutputDirectory)" ProjectPath=""$(TestDirectory)/Microsoft.DotNet.Cli.Tests.sln"" AdditionalParameters="/p:PreviousStageProps=$(NextStagePropsPath)" MaxCpuCount="1" /> </Target> <Target Name="CreateTestAssetPackageNuPkgs" DependsOnTargets="SetupTestPackageProjectData;" Outputs="%(TestPackageProject.Identity)"> <DotNetRestore ToolPath="$(OutputDirectory)" WorkingDirectory="$([System.IO.Directory]::GetParent('%(TestPackageProject.ProjectPath)'))" ProjectPath="%(TestPackageProject.ProjectPath)" AdditionalParameters="/p:RestoreAdditionalProjectSources=$(TestOutputDir)/packages /p:PreviousStageProps=$(NextStagePropsPath)" /> <!-- https://github.com/NuGet/Home/issues/4063 --> <DotNetPack Output="$(TestPackagesDir)" ProjectPath="%(TestPackageProject.ProjectPath)" ToolPath="$(OutputDirectory)" VersionSuffix="%(TestPackageProject.VersionSuffix)" MsbuildArgs="%(TestPackageProject.MsbuildArgs) /p:SdkNuGetVersion=$(SdkNugetVersion) /p:RestoreAdditionalProjectSources=$(TestOutputDir)/packages /p:PreviousStageProps=$(NextStagePropsPath)" /> </Target> <Target Name="TestsForBuildItself"> <DotNetMSBuild Arguments="/v:diag $(RepoRoot)/test/MsBuildScript.Tests/runtests.target" ToolPath="$(PreviousStageDirectory)" /> </Target> <Target Name="EnsureStageSeparation"> <DotNetMSBuild Arguments="/v:diag $(RepoRoot)/build_projects/Microsoft.DotNet.Cli.Build.SelfTest/InvokeWithStage0.proj /p:OutputDirectory="$(OutputDirectory)"" ToolPath="$(PreviousStageDirectory)" /> </Target> </Project>