Make UseRazorBuildServer=true by default

This commit is contained in:
Pranav K 2018-03-05 14:10:55 -08:00
parent 27e6c699e5
commit 0d321771ad
No known key found for this signature in database
GPG Key ID: 1963DA6D96C3057A
12 changed files with 91 additions and 27 deletions

View File

@ -59,9 +59,9 @@ Copyright (c) .NET Foundation. All rights reserved.
<IncludeRazorContentInPack Condition="'$(IncludeRazorContentInPack)'==''">false</IncludeRazorContentInPack> <IncludeRazorContentInPack Condition="'$(IncludeRazorContentInPack)'==''">false</IncludeRazorContentInPack>
<!-- <!--
Set to true to allow a Razor code generation to use a persistent build server process. Set to false to disable Razor code generation from using a persistent build server process.
--> -->
<UseRazorBuildServer Condition="'$(UseRazorBuildServer)'==''">false</UseRazorBuildServer> <UseRazorBuildServer Condition="'$(UseRazorBuildServer)'==''">true</UseRazorBuildServer>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true'"> <ItemGroup Condition="'$(EnableDefaultItems)' == 'true' And '$(EnableDefaultContentItems)' == 'true'">

View File

@ -10,8 +10,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class BuildIncrementalismTest : MSBuildIntegrationTestBase public class BuildIncrementalismTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public BuildIncrementalismTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task BuildIncremental_SimpleMvc_PersistsTargetInputFile() public async Task BuildIncremental_SimpleMvc_PersistsTargetInputFile()

View File

@ -12,23 +12,32 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class BuildIntegrationTest : MSBuildIntegrationTestBase public class BuildIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public BuildIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public Task Build_SimpleMvc_UsingDotnetMSBuild_CanBuildSuccessfully() public Task Build_SimpleMvc_UsingDotnetMSBuildAndWithoutBuildServer_CanBuildSuccessfully()
=> Build_SimpleMvc_CanBuildSuccessfully(MSBuildProcessKind.Dotnet); => Build_SimpleMvc_WithoutBuildServer_CanBuildSuccessfully(MSBuildProcessKind.Dotnet);
[ConditionalFact] [ConditionalFact]
[OSSkipCondition(OperatingSystems.Linux)] [OSSkipCondition(OperatingSystems.Linux)]
[OSSkipCondition(OperatingSystems.MacOSX)] [OSSkipCondition(OperatingSystems.MacOSX)]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public Task Build_SimpleMvc_UsingDesktopMSBuild_CanBuildSuccessfully() public Task Build_SimpleMvc_UsingDesktopMSBuildAndWithoutBuildServer_CanBuildSuccessfully()
=> Build_SimpleMvc_CanBuildSuccessfully(MSBuildProcessKind.Desktop); => Build_SimpleMvc_WithoutBuildServer_CanBuildSuccessfully(MSBuildProcessKind.Desktop);
private async Task Build_SimpleMvc_CanBuildSuccessfully(MSBuildProcessKind msBuildProcessKind) // This test is identical to the ones in BuildServerIntegrationTest except this one explicitly disables the Razor build server.
private async Task Build_SimpleMvc_WithoutBuildServer_CanBuildSuccessfully(MSBuildProcessKind msBuildProcessKind)
{ {
var result = await DotnetMSBuild("Build", msBuildProcessKind: msBuildProcessKind); var result = await DotnetMSBuild("Build",
"/p:UseRazorBuildServer=false",
suppressBuildServer: true,
msBuildProcessKind: msBuildProcessKind);
Assert.BuildPassed(result); Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "SimpleMvc.dll"); Assert.FileExists(result, OutputPath, "SimpleMvc.dll");

View File

@ -7,8 +7,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class BuildIntrospectionTest : MSBuildIntegrationTestBase public class BuildIntrospectionTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public BuildIntrospectionTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task RazorSdk_AddsCshtmlFilesToUpToDateCheckInput() public async Task RazorSdk_AddsCshtmlFilesToUpToDateCheckInput()

View File

@ -10,11 +10,9 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class BuildServerIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture> public class BuildServerIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
private readonly string _pipeName; public BuildServerIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
public BuildServerIntegrationTest(BuildServerTestFixture fixture)
{ {
_pipeName = fixture.PipeName;
} }
[Fact] [Fact]
@ -32,7 +30,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
var result = await DotnetMSBuild( var result = await DotnetMSBuild(
"Build", "Build",
$"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true", "/p:_RazorForceBuildServer=true",
msBuildProcessKind: msBuildProcessKind); msBuildProcessKind: msBuildProcessKind);
Assert.BuildPassed(result); Assert.BuildPassed(result);
@ -59,7 +57,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
var result = await DotnetMSBuild( var result = await DotnetMSBuild(
"Build", "Build",
$"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true"); "/p:_RazorForceBuildServer=true");
Assert.BuildPassed(result); Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "SimpleMvc.dll"); Assert.FileExists(result, OutputPath, "SimpleMvc.dll");
@ -74,7 +72,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
var result = await DotnetMSBuild( var result = await DotnetMSBuild(
"Build", "Build",
$"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true"); "/p:_RazorForceBuildServer=true");
Assert.BuildPassed(result); Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "Whitespace in name.dll"); Assert.FileExists(result, OutputPath, "Whitespace in name.dll");

View File

@ -7,8 +7,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class ConfigurationMetadataIntegrationTest : MSBuildIntegrationTestBase public class ConfigurationMetadataIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public ConfigurationMetadataIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task Build_WithMvc_AddsConfigurationMetadata() public async Task Build_WithMvc_AddsConfigurationMetadata()

View File

@ -6,8 +6,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class DesignTimeBuildIntegrationTest : MSBuildIntegrationTestBase public class DesignTimeBuildIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public DesignTimeBuildIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task DesignTimeBuild_DoesNotRunRazorTargets() public async Task DesignTimeBuild_DoesNotRunRazorTargets()

View File

@ -15,8 +15,9 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
private static readonly AsyncLocal<ProjectDirectory> _project = new AsyncLocal<ProjectDirectory>(); private static readonly AsyncLocal<ProjectDirectory> _project = new AsyncLocal<ProjectDirectory>();
protected MSBuildIntegrationTestBase() protected MSBuildIntegrationTestBase(BuildServerTestFixture buildServer)
{ {
BuildServer = buildServer;
} }
#if DEBUG #if DEBUG
@ -44,19 +45,35 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
protected string TargetFramework { get; set; } = "netcoreapp2.0"; protected string TargetFramework { get; set; } = "netcoreapp2.0";
protected BuildServerTestFixture BuildServer { get; set; }
internal Task<MSBuildResult> DotnetMSBuild( internal Task<MSBuildResult> DotnetMSBuild(
string target, string target,
string args = null, string args = null,
bool suppressRestore = false, bool suppressRestore = false,
bool suppressTimeout = false, bool suppressTimeout = false,
bool suppressBuildServer = false,
MSBuildProcessKind msBuildProcessKind = MSBuildProcessKind.Dotnet) MSBuildProcessKind msBuildProcessKind = MSBuildProcessKind.Dotnet)
{ {
var timeout = suppressTimeout ? (TimeSpan?)Timeout.InfiniteTimeSpan : null; var timeout = suppressTimeout ? (TimeSpan?)Timeout.InfiniteTimeSpan : null;
var restoreArgument = suppressRestore ? "" : "/restore"; var buildArgumentList = new List<string>();
if (!suppressRestore)
{
buildArgumentList.Add("/restore");
}
if (!suppressBuildServer)
{
buildArgumentList.Add($"/p:_RazorBuildServerPipeName={BuildServer.PipeName}");
}
buildArgumentList.Add($"/t:{target} /p:Configuration={Configuration} {args}");
var buildArguments = string.Join(" ", buildArgumentList);
return MSBuildProcessManager.RunProcessAsync( return MSBuildProcessManager.RunProcessAsync(
Project, Project,
$"{restoreArgument} /t:{target} /p:Configuration={Configuration} {args}", buildArguments,
timeout, timeout,
msBuildProcessKind); msBuildProcessKind);
} }

View File

@ -8,8 +8,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class PackIntegrationTest : MSBuildIntegrationTestBase public class PackIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public PackIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("ClassLibrary")] [InitializeTestProject("ClassLibrary")]
public async Task Pack_Works_IncludesRazorAssembly() public async Task Pack_Works_IncludesRazorAssembly()

View File

@ -7,8 +7,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class PublishIntegrationTest : MSBuildIntegrationTestBase public class PublishIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public PublishIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task Publish_RazorCompileOnPublish_IsDefault() public async Task Publish_RazorCompileOnPublish_IsDefault()

View File

@ -9,8 +9,13 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class RazorCompileIntegrationTest : MSBuildIntegrationTestBase public class RazorCompileIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
public RazorCompileIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task RazorCompile_Success_CompilesAssembly() public async Task RazorCompile_Success_CompilesAssembly()

View File

@ -10,10 +10,15 @@ using Xunit;
namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{ {
public class RazorGenerateIntegrationTest : MSBuildIntegrationTestBase public class RazorGenerateIntegrationTest : MSBuildIntegrationTestBase, IClassFixture<BuildServerTestFixture>
{ {
private const string RazorGenerateTarget = "RazorGenerate"; private const string RazorGenerateTarget = "RazorGenerate";
public RazorGenerateIntegrationTest(BuildServerTestFixture buildServer)
: base(buildServer)
{
}
[Fact] [Fact]
[InitializeTestProject("SimpleMvc")] [InitializeTestProject("SimpleMvc")]
public async Task RazorGenerate_Success_GeneratesFilesOnDisk() public async Task RazorGenerate_Success_GeneratesFilesOnDisk()