BuildAndTest.proj 5.2 KB
Newer Older
1 2
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c)  Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information. -->
3
<Project ToolsVersion="14.0" DefaultTargets="BuildAndTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
P
Pilchie 已提交
4

J
Jared Parsons 已提交
5
  <Import Project="$(MSBuildThisFileDirectory)build\Targets\Versions.props" />
6

7
  <!-- At the moment Jenkins runs on a machine without any build of Visual Studio 2015.  Hence we must
8
       use a 2013 compatible solution. -->
9
  <PropertyGroup>
10
    <RoslynSolution Condition="'$(RoslynSolution)' == ''">$(MSBuildThisFileDirectory)Roslyn.sln</RoslynSolution>
11
    <SamplesSolution>$(MSBuildThisFileDirectory)src\Samples\Samples.sln</SamplesSolution>
12
    <Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
13
    <RunTestArgs Condition="'$(ManualTest)' == ''">$(RunTestArgs) -xml</RunTestArgs>
14
    <RunTestArgs Condition="'$(Test64)' == 'true'">$(RunTestArgs) -test64</RunTestArgs>
15
    <RunTestArgs Condition="'$(TestVsi)' == 'true'">$(RunTestArgs) -testVsi</RunTestArgs>
16 17
    <RunTestArgs Condition="'$(Trait)' != ''">$(RunTestArgs) -trait:$(Trait)</RunTestArgs>
    <RunTestArgs Condition="'$(NoTrait)' != ''">$(RunTestArgs) -notrait:$(NoTrait)</RunTestArgs>
J
Jared Parsons 已提交
18 19
    <IncludePattern Condition="'$(IncludePattern)' == '' AND '$(TestVsi)' != 'true'">*.UnitTests.dll</IncludePattern>
    <IncludePattern Condition="'$(IncludePattern)' == '' AND '$(TestVsi)' == 'true'">*.IntegrationTests.dll</IncludePattern>
20
    <OutputDirectory>Binaries\$(Configuration)</OutputDirectory>
21
    <CoreClrTestDirectory>$(OutputDirectory)\CoreClrTest</CoreClrTestDirectory>
22 23 24
    <MSBuildCommonProperties>
      RestorePackages=false;
      TreatWarningsAsErrors=true;
25
    </MSBuildCommonProperties>
26
    <MSBuildCommonProperties Condition="'$(TestVsi)' != 'true'">
27
      $(MSBuildCommonProperties);
28 29
      DeployExtension=false;
    </MSBuildCommonProperties>
30
    <MSBuildCommonProperties Condition="'$(TestVsi)' == 'true'">
31 32 33
      $(MSBuildCommonProperties);
      DeployExtension=true;
    </MSBuildCommonProperties>
34 35
  </PropertyGroup>

J
Jared Parsons 已提交
36
  <Target Name="Build">
37 38 39 40 41 42 43 44 45
    <MSBuild BuildInParallel="true"
             Projects="$(RoslynSolution)"
             Properties="$(MSBuildCommonProperties)"
             Targets="Build" />
    <MSBuild BuildInParallel="true"
             Condition="'$(ManualTest)' == ''"
             Projects="$(SamplesSolution)"
             Properties="$(MSBuildCommonProperties)"
             Targets="Build" />
P
Pilchie 已提交
46 47 48
  </Target>

  <Target Name="Clean">
49 50 51 52 53 54 55 56 57
    <MSBuild BuildInParallel="true"
             Projects="$(RoslynSolution)"
             Properties="$(MSBuildCommonProperties)"
             Targets="Clean" />
    <MSBuild BuildInParallel="true"
             Condition="'$(ManualTest)' == ''"
             Projects="$(SamplesSolution)"
             Properties="$(MSBuildCommonProperties)"
             Targets="Clean" />
P
Pilchie 已提交
58 59 60
  </Target>

  <Target Name="Rebuild">
61 62 63 64 65 66 67 68 69
    <MSBuild BuildInParallel="true"
             Projects="$(RoslynSolution)"
             Properties="$(MSBuildCommonProperties)"
             Targets="Rebuild" />
    <MSBuild BuildInParallel="true"
             Condition="'$(ManualTest)' == ''"
             Projects="$(SamplesSolution)"
             Properties="$(MSBuildCommonProperties)"
             Targets="Rebuild" />
P
Pilchie 已提交
70 71 72
  </Target>

  <Target Name="Test">
73
    <ItemGroup>
74 75
      <AssembliesToCopyLocal Include="$(NuGetPackageRoot)\xunit\$(xunitVersion)\*.dll;
                                      $(NuGetPackageRoot)\xunit.assert\$(xunitassertVersion)\lib\portable-net45+netcore45+wp8+wpa81\*.dll" />
76
    </ItemGroup>
77

78
    <!-- Copy xunit stuff to output directory -->
79 80 81 82
    <Copy SourceFiles="@(AssembliesToCopyLocal)"
          DestinationFolder="$(OutputDirectory)"
          SkipUnchangedFiles="true"
          UseHardlinksIfPossible="true" />
83

84 85
    <MakeDir Directories="$(CoreClrTestDirectory)\xUnitResults" />

86
    <ItemGroup>
J
Jared Parsons 已提交
87 88

      <!-- MakeConst unit tests tracked by https://github.com/dotnet/roslyn/issues/5918 -->
89 90
      <TestAssemblies Condition="'$(Test64)' != 'true'"
                      Include="$(OutputDirectory)\UnitTests*\**\$(IncludePattern);" />
J
Jared Parsons 已提交
91

92 93 94
      <TestAssemblies Condition="'$(Test64)' == 'true'"
                      Include="$(OutputDirectory)\UnitTests*\**\$(IncludePattern);"
                      Exclude="$(OutputDirectory)\UnitTests*\**\Roslyn.Interactive*" />
95 96

      <CoreTestAssemblies Include="$(CoreClrTestDirectory)\$(IncludePattern)" />
97
    </ItemGroup>
P
Pilchie 已提交
98

99 100 101
    <PropertyGroup>
      <CoreRunExe>$(CoreClrTestDirectory)\CoreRun.exe</CoreRunExe>
      <CoreRunArgs>$(CoreClrTestDirectory)\xunit.console.netcore.exe @(CoreTestAssemblies, ' ') -parallel all -xml $(CoreClrTestDirectory)\xUnitResults\TestResults.xml</CoreRunArgs>
J
Jared Parsons 已提交
102
      <RunTestsExe>Binaries\$(Configuration)\Exes\RunTests\RunTests.exe</RunTestsExe>
103
      <RunTestsArgs>$(NuGetPackageRoot)\xunit.runner.console\$(xunitrunnerconsoleVersion)\tools $(RunTestArgs) @(TestAssemblies, ' ')</RunTestsArgs>
104
    </PropertyGroup>
105

J
Jared Parsons 已提交
106
    <Exec Condition="'$(TestVsi)' != 'true'" Command="&quot;$(CoreRunExe)&quot; $(CoreRunArgs)" />
107

J
Jared Parsons 已提交
108
    <Exec Command="&quot;$(RunTestsExe)&quot; $(RunTestsArgs)" />
109

P
Pilchie 已提交
110 111
  </Target>

112
  <Target Name="BuildAndTest" DependsOnTargets="Build;Test" />
P
Pilchie 已提交
113

J
Jared Parsons 已提交
114
</Project>