2016-07-11 12:46:27 -07:00
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2016-07-15 00:20:23 -07:00
<PropertyGroup>
<PathSeparator>/</PathSeparator>
<PathSeparator Condition=" '$(OSName)' == 'win' ">\</PathSeparator>
</PropertyGroup>
2016-07-13 12:52:33 -07:00
<Import Project="test/TestPackageProjects.targets" />
<Import Project="test/TestAssetProjects.targets" />
2016-07-15 00:20:23 -07:00
<Import Project="test/TestProjects.targets" />
2016-07-11 12:46:27 -07:00
<Target Name="Test"
DependsOnTargets="PrepareTests;
BuildTestAssets;
BuildTests;">
<PropertyGroup>
<PathListSeparator>:</PathListSeparator>
<PathListSeparator Condition=" '$(OSName)' == 'win' ">%3b</PathListSeparator>
<ExecPath>$(Stage2Directory)$(PathListSeparator)$(PATH)</ExecPath>
<ExecPath Condition=" '$(OSName)' == 'win' ">$(Stage2Directory)</ExecPath>
<TestArtifactsEnv>$(TestArtifactsDir)</TestArtifactsEnv>
</PropertyGroup>
<ItemGroup>
<TestTaskEnvironmentVariables Include="PATH=$(ExecPath)" />
<TestTaskEnvironmentVariables Include="TEST_ARTIFACTS=$(TestArtifactsEnv)" />
</ItemGroup>
2016-07-15 00:20:23 -07:00
<DotNetTest WorkingDirectory="%(TestProjects.ProjectDir)"
2016-07-11 12:46:27 -07:00
EnvironmentVariables="@(TestTaskEnvironmentVariables)"
ToolPath="$(Stage2Directory)"
Configuration="$(Configuration)"
2016-07-15 00:20:23 -07:00
NoBuild="True"
2016-07-11 12:46:27 -07:00
NoTrait="category=failing"
2016-07-15 00:20:23 -07:00
Xml="$(TestResultXmlDir)/%(TestProjects.OutputName)-testResults.xml" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="PrepareTests"
DependsOnTargets="Init">
<PropertyGroup>
<TestPackageBuildVersionSuffix>$(CommitCount)</TestPackageBuildVersionSuffix>
2016-07-12 17:10:48 -07:00
<TestOutputDir>$(BaseOutputDirectory)/tests/</TestOutputDir>
<TestPackagesBuildDir>$(TestOutputDir)/packagesBuild/</TestPackagesBuildDir>
<TestPackagesDir>$(TestOutputDir)/packages/</TestPackagesDir>
<TestArtifactsDir>$(TestOutputDir)/artifacts/</TestArtifactsDir>
<TestResultXmlDir>$(TestOutputDir)/results/</TestResultXmlDir>
<TestDirectory>$(RepoRoot)/test/</TestDirectory>
<DotnetUnderTest>$(Stage2Directory)</DotnetUnderTest>
2016-07-11 12:46:27 -07:00
</PropertyGroup>
</Target>
<Target Name="BuildTests"
2016-07-15 00:20:23 -07:00
DependsOnTargets="RestoreTests;
SetupTestProjectData;"
Inputs="%(TestProjects.BuildInputs)"
Outputs="%(TestProjects.BuildOutput)">
2016-07-12 17:10:48 -07:00
<DotNetBuild Configuration="$(Configuration)"
2016-07-15 00:20:23 -07:00
Framework="%(TestProjects.Framework)"
2016-07-12 17:10:48 -07:00
ToolPath="$(DotnetUnderTest)"
2016-07-15 00:20:23 -07:00
WorkingDirectory="%(TestProjects.RelativeDir)" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="RestoreTests"
DependsOnTargets="CreateTestAssetPackageNuPkgs;
CleanTestProjectsBinObj;
SetupRestoreTestsInputs;"
Inputs="@(RestoreTestsInputs)"
Outputs="@(RestoreTestsInputs->'%(RelativeDir)project.lock.json')">
2016-07-15 00:20:23 -07:00
<CallTarget Targets="CleanTestProjectsLockFiles"/>
2016-07-12 17:10:48 -07:00
<DotNetRestore FallbackSource="$(TestPackagesDir)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(TestDirectory)" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="CleanTestProjectsBinObj"
DependsOnTargets="SetupRestoreTestsInputs;"
Inputs="@(RestoreTestsInputs)"
Outputs="@(RestoreTestsInputs->'%(RelativeDir)project.lock.json')">
2016-07-12 17:10:48 -07:00
<ItemGroup>
<FilesToDelete Include="$(TestDirectory)**/bin/**/*.*" />
<FilesToDelete Include="$(TestDirectory)**/obj/**/*.*" />
</ItemGroup>
<Delete Files="@(FilesToDelete)" />
<ItemGroup>
<FilesToDelete Remove="*" />
</ItemGroup>
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="SetupRestoreTestsInputs"
DependsOnTargets="PrepareTests;" >
<ItemGroup>
2016-07-15 00:20:23 -07:00
<RestoreTestsInputs Include="$(TestDirectory)/**/project.json"
Exclude="$(TestDirectory)/**/bin/**/project.json" />
2016-07-11 12:46:27 -07:00
</ItemGroup>
</Target>
<Target Name="BuildTestAssets"
DependsOnTargets="BuildTestAssetProjects;
BuildDesktopTestAssetProjects;">
</Target>
<Target Name="BuildTestAssetProjects"
2016-07-13 12:52:33 -07:00
DependsOnTargets="RestoreTestAssetProjects;
SetupTestAssetProjectData;"
Inputs="%(TestAssetProjects.BuildInputs)"
Outputs="%(TestAssetProjects.BuildOutput)">
2016-07-11 12:46:27 -07:00
2016-07-12 17:10:48 -07:00
<DotNetBuild Framework="netcoreapp1.0"
2016-07-13 12:52:33 -07:00
ProjectPath="$(RepoRoot)%(TestAssetProjects.ProjectPath)"
2016-07-12 17:10:48 -07:00
ToolPath="$(DotnetUnderTest)"
2016-07-13 12:52:33 -07:00
WorkingDirectory="%(TestAssetProjects.RelativeDir)" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="RestoreTestAssetProjects"
DependsOnTargets="CreateTestAssetPackageNuPkgs;
SetupRestoreTestAssetProjectsInputs;"
Inputs="@(RestoreTestAssetProjectsInputs)"
Outputs="@(RestoreTestAssetProjectsInputs->'%(RelativeDir)/project.lock.json')">
2016-07-12 17:10:48 -07:00
<DotNetRestore FallbackSource="$(TestPackagesDir)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(RepoRoot)TestAssets/TestProjects/" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="SetupRestoreTestAssetProjectsInputs" >
<ItemGroup>
<RestoreTestAssetProjectsInputs Include="$(RepoRoot)/TestAssets/TestProjects/**/project.json" />
</ItemGroup>
</Target>
<Target Name="CleanTestAssetProjectsLockFiles" >
<ItemGroup>
<TestAssetProjectsLockFiles Include="$(RepoRoot)/TestAssets/TestProjects/**/project.lock.json" />
</ItemGroup>
<Delete Files="@(TestAssetProjectsLockFiles)" />
</Target>
2016-07-15 00:20:23 -07:00
<Target Name="CleanTestProjectsLockFiles" >
<ItemGroup>
<TestProjectsLockFiles Include="$(RepoRoot)/test/**/project.lock.json" />
</ItemGroup>
<Delete Files="@(TestProjectsLockFiles)" />
</Target>
2016-07-11 12:46:27 -07:00
<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"
Exclude="@(NoAutoBuildDesktopTestAssetProjects)" />
</ItemGroup>
<Message Text="Skipping projects with .noautobuild files:" />
<Message Text="%(NoAutoBuildDesktopTestAssetProjects.FullPath)" />
2016-07-12 17:10:48 -07:00
<DotNetBuild Configuration="$(Configuration)"
Framework="net451"
ProjectPath="%(BuildableDesktopTestAssetProjects.FullPath)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="%(BuildableDesktopTestAssetProjects.RelativeDir)" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="RestoreDesktopTestAssetProjects"
Condition=" '$(IsDesktopAvailable)' == 'True' "
DependsOnTargets="CreateTestAssetPackageNuPkgs;
SetupRestoreDesktopTestAssetProjectsInputs;"
Inputs="@(RestoreDesktopTestAssetProjectsInputs)"
Outputs="@(RestoreDesktopTestAssetProjectsInputs->'%(RelativeDir)/project.lock.json')">
2016-07-12 17:10:48 -07:00
<DotNetRestore FallbackSource="$(TestPackagesDir)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(RepoRoot)TestAssets\DesktopTestProjects\" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="SetupRestoreDesktopTestAssetProjectsInputs">
<ItemGroup>
<RestoreDesktopTestAssetProjectsInputs Include="$(RepoRoot)TestAssets\DesktopTestProjects\**\project.json" />
</ItemGroup>
</Target>
<Target Name="CreateTestAssetPackageNuPkgs"
DependsOnTargets="BuildTestAssetPackageProjects;
SetupTestPackageProjectData;"
2016-07-12 17:10:48 -07:00
Inputs="%(TestPackageProject.PackInputs)"
Outputs="%(TestPackageProject.PackOutputs)">
2016-07-11 12:46:27 -07:00
2016-07-12 17:10:48 -07:00
<DotNetPack BuildBasePath="$(TestPackagesBuildDir)"
NoBuild="True"
Output="$(TestPackagesDir)"
ProjectPath="%(TestPackageProject.FullPath)"
ToolPath="$(DotnetUnderTest)"
VersionSuffix="%(TestPackageProject.VersionSuffix)" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="BuildTestAssetPackageProjects"
DependsOnTargets="RestoreTestAssetPackageProjects;
SetupTestPackageProjectData;"
2016-07-12 17:10:48 -07:00
Inputs="%(TestPackageProject.BuildInputs)"
Outputs="%(TestPackageProject.BuildOutputs)">
2016-07-11 12:46:27 -07:00
2016-07-12 17:10:48 -07:00
<DotNetBuild BuildBasePath="$(TestPackagesBuildDir)"
Framework="%(TestPackageProject.Framework)"
ProjectPath="%(TestPackageProject.FullPath)"
ToolPath="$(DotnetUnderTest)"
WorkingDirectory="%(BuildableTestAssetProjects.RelativeDir)" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="RestoreTestAssetPackageProjects"
DependsOnTargets="PrepareTests;
SetupRestoreTestAssetPackageProjectsInputs;"
Inputs="@(RestoreTestAssetPackageProjectsInputs)"
Outputs="@(RestoreTestAssetPackageProjectsInputs->'%(RelativeDir)/project.lock.json')">
2016-07-12 17:10:48 -07:00
<DotNetRestore ToolPath="$(DotnetUnderTest)"
WorkingDirectory="$(RepoRoot)/TestAssets/TestPackages/" />
2016-07-11 12:46:27 -07:00
</Target>
<Target Name="SetupRestoreTestAssetPackageProjectsInputs"
DependsOnTargets="Init;">
<ItemGroup>
<RestoreTestAssetPackageProjectsInputs Include="$(RepoRoot)/TestAssets/TestPackages/**/project.json" />
</ItemGroup>
</Target>
</Project>