提交 c64149a3 编写于 作者: J Jared Parsons

Merge pull request #4279 from jasonmalinowski/open-source-build-improvements

Open source build improvements
......@@ -12,12 +12,9 @@
<PropertyGroup>
<RoslynSolution>$(MSBuildThisFileDirectory)Roslyn.sln</RoslynSolution>
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<RunTestArgs></RunTestArgs>
<RunTestArgs Condition="'$(Test64)' == 'true'">-test64</RunTestArgs>
<RunTestArgs>$(RunTestArgs) -xml</RunTestArgs>
<RunTestArgs Condition="'$(Test64)' == 'true'">$(RunTestArgs) -test64</RunTestArgs>
<IncludePattern Condition="'$(IncludePattern)' == ''">*.UnitTests*.dll</IncludePattern>
<!-- Emit XML in a CIBuild in order to get structured test results -->
<RunTestArgs Condition="'$(CIBuild)' == 'true'">$(RunTestArgs) -xml</RunTestArgs>
</PropertyGroup>
<Target Name="RestorePackages">
......@@ -47,34 +44,8 @@
</Target>
<Target Name="Test">
<ItemGroup Condition="'$(PublicBuild)' == '' AND '$(CIBuild)' == ''">
<TestAssemblies
Include="Binaries\$(Configuration)\**\$(IncludePattern)"
Exclude="Binaries\$(Configuration)\Roslyn.Compilers.NativeClient.UnitTests.dll" />
</ItemGroup>
<ItemGroup Condition="'$(PublicBuild)' == '' AND '$(CIBuild)' == 'true'">
<TestAssemblies
Include="Binaries\$(Configuration)\**\$(IncludePattern)"
Exclude="
Binaries\$(Configuration)\Roslyn.Compilers.NativeClient.UnitTests.dll;
Binaries\$(Configuration)\Microsoft.CodeAnalysis.Scripting.UnitTests.dll;" />
</ItemGroup>
<!-- The Microsoft.CodeAnalysis.Scripting.UnitTests.dll is disabled due to https://github.com/dotnet/roslyn/issues/860 -->
<ItemGroup Condition="'$(PublicBuild)' == 'true' AND '$(CIBuild)' == ''">
<TestAssemblies
Include="Binaries\$(Configuration)\**\$(IncludePattern)"
Exclude="
Binaries\$(Configuration)\Roslyn.Compilers.NativeClient.UnitTests.dll;
Binaries\$(Configuration)\Microsoft.CodeAnalysis.Scripting.UnitTests.dll;
Binaries\$(Configuration)\Roslyn.Services.Editor.UnitTests2.dll;
Binaries\$(Configuration)\Roslyn.Services.Editor.UnitTests.dll;
Binaries\$(Configuration)\Roslyn.ExpressionEvaluator.CSharp.ResultProvider.UnitTests.dll;
Binaries\$(Configuration)\Roslyn.ExpressionEvaluator.VisualBasic.ResultProvider.UnitTests.dll;
Binaries\$(Configuration)\Roslyn.Services.Editor.VisualBasic.UnitTests.dll;
Binaries\$(Configuration)\Roslyn.Services.Editor.CSharp.UnitTests.dll;" />
<ItemGroup>
<TestAssemblies Include="Binaries\$(Configuration)\**\$(IncludePattern)" />
</ItemGroup>
<Exec Command="Binaries\$(Configuration)\RunTests.exe packages\xunit.runners.2.0.0-alpha-build2576\tools $(RunTestArgs) @(TestAssemblies, ' ')" />
......
......@@ -209,7 +209,7 @@
==================================================================================== -->
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != '' AND '$(ImportVSSDKTargets)' == 'true' AND '$(CIBuild)' == ''" />
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != '' AND '$(ImportVSSDKTargets)' == 'true'" />
<!-- ====================================================================================
......
......@@ -4,7 +4,17 @@
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props') AND '$(MSBuildProjectExtension)' != '.vcxproj'" />
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(DevEnvDir)' == ''">
<DevEnvDir>$(VSINSTALLDIR)\Common7\IDE</DevEnvDir>
<DevEnvDir Condition="'$(VisualStudioVersion)' == '12.0'">$(VS120COMNTOOLS)\..\IDE</DevEnvDir>
<DevEnvDir Condition="'$(VisualStudioVersion)' == '14.0'">$(VS140COMNTOOLS)\..\IDE</DevEnvDir>
<DevEnvDir>$([System.IO.Path]::GetFullPath('$(DevEnvDir)'))</DevEnvDir>
</PropertyGroup>
<PropertyGroup>
<VisualStudioReferenceMajorVersion Condition="'$(VisualStudioReferenceMajorVersion)' == ''">$(VisualStudioVersion.Substring(0, $(VisualStudioVersion.IndexOf('.'))))</VisualStudioReferenceMajorVersion>
<VisualStudioReferenceAssemblyVersion Condition="'$(VisualStudioReferenceAssemblyVersion)' == ''">$(VisualStudioReferenceMajorVersion).0.0.0</VisualStudioReferenceAssemblyVersion>
<VisualStudioCodename>Dev$(VisualStudioReferenceMajorVersion)</VisualStudioCodename>
......@@ -33,6 +43,10 @@
<MicrosoftDiaSymReaderNativeVersion>1.1.0-alpha1</MicrosoftDiaSymReaderNativeVersion>
<NuGetCommandLineVersion>$(NuGetCommandLineAssemblyVersion)</NuGetCommandLineVersion>
<MicrosoftCompositionVersion>$(MicrosoftCompositionAssemblyVersion)</MicrosoftCompositionVersion>
<!-- If we still have Roslyn installed, our VSIX-producing packages are not going to install, so let's not even try.
OpenSourceDebug overrides this by simple virtue that it's property setting is after the include of this file -->
<DeployExtension Condition="Exists('$(DevEnvDir)\CommonExtensions\Microsoft\Roslyn\Language Services\extension.vsixmanifest')">false</DeployExtension>
</PropertyGroup>
<Choose>
......@@ -233,13 +247,6 @@
<FakeSignToolPath>$(MSBuildThisFileDirectory)..\..\packages\FakeSign.0.9.2\tools\FakeSign.exe</FakeSignToolPath>
</PropertyGroup>
<PropertyGroup Condition="'$(DevEnvDir)' == ''">
<DevEnvDir>$(VSINSTALLDIR)\Common7\IDE</DevEnvDir>
<DevEnvDir Condition="'$(VisualStudioVersion)' == '12.0'">$(VS120COMNTOOLS)\..\IDE</DevEnvDir>
<DevEnvDir Condition="'$(VisualStudioVersion)' == '14.0'">$(VS140COMNTOOLS)\..\IDE</DevEnvDir>
<DevEnvDir>$([System.IO.Path]::GetFullPath('$(DevEnvDir)'))</DevEnvDir>
</PropertyGroup>
<Choose>
<When Condition="'$(BuildVersion)' != ''">
<!-- The user specified a build version number. In that case, we'll use their version number
......
......@@ -24,14 +24,14 @@ move Binaries\%BuildConfiguration%\* %RoslynRoot%\Binaries\Bootstrap
msbuild /v:m /t:Clean build/Toolset.sln /p:Configuration=%BuildConfiguration%
taskkill /F /IM vbcscompiler.exe
msbuild /v:m /m /p:BootstrapBuildPath=%RoslynRoot%\Binaries\Bootstrap BuildAndTest.proj /p:CIBuild=true /p:Configuration=%BuildConfiguration%
msbuild /v:m /m /p:BootstrapBuildPath=%RoslynRoot%\Binaries\Bootstrap BuildAndTest.proj /p:Configuration=%BuildConfiguration%
if ERRORLEVEL 1 (
taskkill /F /IM vbcscompiler.exe
echo Build failed
exit /b 1
)
msbuild /v:m /m /p:BootstrapBuildPath=%RoslynRoot%\Binaries\Bootstrap src/Samples/Samples.sln /p:CIBuild=true /p:Configuration=%BuildConfiguration%
msbuild /v:m /m /p:BootstrapBuildPath=%RoslynRoot%\Binaries\Bootstrap src/Samples/Samples.sln /p:Configuration=%BuildConfiguration%
if ERRORLEVEL 1 (
taskkill /F /IM vbcscompiler.exe
echo Build failed
......
......@@ -12,25 +12,25 @@ namespace RunTests
public sealed class ProcessOutput
{
private readonly int _exitCode;
private readonly IEnumerable<string> _outputLines;
private readonly IEnumerable<string> _errorLines;
private readonly IList<string> _outputLines;
private readonly IList<string> _errorLines;
public int ExitCode
{
get { return _exitCode; }
}
public IEnumerable<string> OutputLines
public IList<string> OutputLines
{
get { return _outputLines; }
}
public IEnumerable<string> ErrorLines
public IList<string> ErrorLines
{
get { return _errorLines; }
}
public ProcessOutput(int exitCode, IEnumerable<string> outputLines, IEnumerable<string> errorLines)
public ProcessOutput(int exitCode, IList<string> outputLines, IList<string> errorLines)
{
_exitCode = exitCode;
_outputLines = outputLines;
......
......@@ -118,7 +118,7 @@ private async Task<TestResult> RunTest(string assemblyPath, CancellationToken ca
builder.AppendFormat(@" -{0} ""{1}""", _useHtml ? "html" : "xml", resultsPath);
builder.Append(" -noshadow");
var errorOutput = string.Empty;
var errorOutput = new StringBuilder();
var start = DateTime.UtcNow;
var processOutput = await ProcessRunner.RunProcessAsync(
_xunitConsolePath,
......@@ -155,13 +155,19 @@ private async Task<TestResult> RunTest(string assemblyPath, CancellationToken ca
File.Delete(resultsPath);
}
errorOutput = processOutput.ErrorLines.Any()
? processOutput.ErrorLines.Aggregate((x, y) => x + Environment.NewLine + y)
: string.Format("xunit produced no error output but had exit code {0}", processOutput.ExitCode);
errorOutput.AppendLine($"Command: {_xunitConsolePath} {builder}");
errorOutput = string.Format("Command: {0} {1}", _xunitConsolePath, builder.ToString())
+ Environment.NewLine
+ errorOutput;
if (processOutput.ErrorLines.Any())
{
foreach (var line in processOutput.ErrorLines)
{
errorOutput.AppendLine(line);
}
}
else
{
errorOutput.AppendLine($"xunit produced no error output but had exit code {processOutput.ExitCode}");
}
// If the results are html, use Process.Start to open in the browser.
......@@ -171,7 +177,7 @@ private async Task<TestResult> RunTest(string assemblyPath, CancellationToken ca
}
}
return new TestResult(processOutput.ExitCode == 0, assemblyName, span, errorOutput);
return new TestResult(processOutput.ExitCode == 0, assemblyName, span, errorOutput.ToString());
}
private static void DeleteFile(string filePath)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册