From 0d321771ad58dbca0887f522d86682f34fe74e21 Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 5 Mar 2018 14:10:55 -0800 Subject: [PATCH] Make UseRazorBuildServer=true by default --- .../Sdk.Razor.CurrentVersion.props | 4 ++-- .../BuildIncrementalismTest.cs | 7 +++++- .../IntegrationTests/BuildIntegrationTest.cs | 23 +++++++++++++------ .../BuildIntrospectionTest.cs | 7 +++++- .../BuildServerIntegrationTest.cs | 12 ++++------ .../ConfigurationMetadataIntegrationTest.cs | 7 +++++- .../DesignTimeBuildIntegrationTest.cs | 7 +++++- .../MSBuildIntegrationTestBase.cs | 23 ++++++++++++++++--- .../IntegrationTests/PackIntegrationTest.cs | 7 +++++- .../PublishIntegrationTest.cs | 7 +++++- .../RazorCompileIntegrationTest.cs | 7 +++++- .../RazorGenerateIntegrationTest.cs | 7 +++++- 12 files changed, 91 insertions(+), 27 deletions(-) diff --git a/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.props b/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.props index 8df8703baa..c9778644e2 100644 --- a/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.props +++ b/src/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Sdk.Razor.CurrentVersion.props @@ -59,9 +59,9 @@ Copyright (c) .NET Foundation. All rights reserved. false - false + true diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIncrementalismTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIncrementalismTest.cs index d4639b8c69..53192cf8cf 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIncrementalismTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIncrementalismTest.cs @@ -10,8 +10,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class BuildIncrementalismTest : MSBuildIntegrationTestBase + public class BuildIncrementalismTest : MSBuildIntegrationTestBase, IClassFixture { + public BuildIncrementalismTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task BuildIncremental_SimpleMvc_PersistsTargetInputFile() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntegrationTest.cs index c2399f91f7..b5a6f75bc8 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntegrationTest.cs @@ -12,23 +12,32 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class BuildIntegrationTest : MSBuildIntegrationTestBase + public class BuildIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { + public BuildIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] - public Task Build_SimpleMvc_UsingDotnetMSBuild_CanBuildSuccessfully() - => Build_SimpleMvc_CanBuildSuccessfully(MSBuildProcessKind.Dotnet); + public Task Build_SimpleMvc_UsingDotnetMSBuildAndWithoutBuildServer_CanBuildSuccessfully() + => Build_SimpleMvc_WithoutBuildServer_CanBuildSuccessfully(MSBuildProcessKind.Dotnet); [ConditionalFact] [OSSkipCondition(OperatingSystems.Linux)] [OSSkipCondition(OperatingSystems.MacOSX)] [InitializeTestProject("SimpleMvc")] - public Task Build_SimpleMvc_UsingDesktopMSBuild_CanBuildSuccessfully() - => Build_SimpleMvc_CanBuildSuccessfully(MSBuildProcessKind.Desktop); + public Task Build_SimpleMvc_UsingDesktopMSBuildAndWithoutBuildServer_CanBuildSuccessfully() + => 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.FileExists(result, OutputPath, "SimpleMvc.dll"); diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntrospectionTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntrospectionTest.cs index ef0143eef7..0e6875ee22 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntrospectionTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIntrospectionTest.cs @@ -7,8 +7,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class BuildIntrospectionTest : MSBuildIntegrationTestBase + public class BuildIntrospectionTest : MSBuildIntegrationTestBase, IClassFixture { + public BuildIntrospectionTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task RazorSdk_AddsCshtmlFilesToUpToDateCheckInput() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildServerIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildServerIntegrationTest.cs index 57645715a3..7ffbbc27e9 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildServerIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildServerIntegrationTest.cs @@ -10,11 +10,9 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { public class BuildServerIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { - private readonly string _pipeName; - - public BuildServerIntegrationTest(BuildServerTestFixture fixture) + public BuildServerIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) { - _pipeName = fixture.PipeName; } [Fact] @@ -32,7 +30,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { var result = await DotnetMSBuild( "Build", - $"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true", + "/p:_RazorForceBuildServer=true", msBuildProcessKind: msBuildProcessKind); Assert.BuildPassed(result); @@ -59,7 +57,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { var result = await DotnetMSBuild( "Build", - $"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true"); + "/p:_RazorForceBuildServer=true"); Assert.BuildPassed(result); Assert.FileExists(result, OutputPath, "SimpleMvc.dll"); @@ -74,7 +72,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { var result = await DotnetMSBuild( "Build", - $"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true"); + "/p:_RazorForceBuildServer=true"); Assert.BuildPassed(result); Assert.FileExists(result, OutputPath, "Whitespace in name.dll"); diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/ConfigurationMetadataIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/ConfigurationMetadataIntegrationTest.cs index d406665da3..b4f81e102e 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/ConfigurationMetadataIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/ConfigurationMetadataIntegrationTest.cs @@ -7,8 +7,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class ConfigurationMetadataIntegrationTest : MSBuildIntegrationTestBase + public class ConfigurationMetadataIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { + public ConfigurationMetadataIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task Build_WithMvc_AddsConfigurationMetadata() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs index a98712d2e0..9fd41950e7 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/DesignTimeBuildIntegrationTest.cs @@ -6,8 +6,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class DesignTimeBuildIntegrationTest : MSBuildIntegrationTestBase + public class DesignTimeBuildIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { + public DesignTimeBuildIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task DesignTimeBuild_DoesNotRunRazorTargets() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/MSBuildIntegrationTestBase.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/MSBuildIntegrationTestBase.cs index 020887b57c..5247f1aca9 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/MSBuildIntegrationTestBase.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/MSBuildIntegrationTestBase.cs @@ -15,8 +15,9 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { private static readonly AsyncLocal _project = new AsyncLocal(); - protected MSBuildIntegrationTestBase() + protected MSBuildIntegrationTestBase(BuildServerTestFixture buildServer) { + BuildServer = buildServer; } #if DEBUG @@ -44,19 +45,35 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests protected string TargetFramework { get; set; } = "netcoreapp2.0"; + protected BuildServerTestFixture BuildServer { get; set; } + internal Task DotnetMSBuild( string target, string args = null, bool suppressRestore = false, bool suppressTimeout = false, + bool suppressBuildServer = false, MSBuildProcessKind msBuildProcessKind = MSBuildProcessKind.Dotnet) { var timeout = suppressTimeout ? (TimeSpan?)Timeout.InfiniteTimeSpan : null; - var restoreArgument = suppressRestore ? "" : "/restore"; + var buildArgumentList = new List(); + + 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( Project, - $"{restoreArgument} /t:{target} /p:Configuration={Configuration} {args}", + buildArguments, timeout, msBuildProcessKind); } diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PackIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PackIntegrationTest.cs index d550a1b62b..d217a3b02d 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PackIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PackIntegrationTest.cs @@ -8,8 +8,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class PackIntegrationTest : MSBuildIntegrationTestBase + public class PackIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { + public PackIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("ClassLibrary")] public async Task Pack_Works_IncludesRazorAssembly() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PublishIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PublishIntegrationTest.cs index e299c31dec..22407311fa 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PublishIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/PublishIntegrationTest.cs @@ -7,8 +7,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class PublishIntegrationTest : MSBuildIntegrationTestBase + public class PublishIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { + public PublishIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task Publish_RazorCompileOnPublish_IsDefault() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorCompileIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorCompileIntegrationTest.cs index 88f325c7f9..c375b99354 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorCompileIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorCompileIntegrationTest.cs @@ -9,8 +9,13 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class RazorCompileIntegrationTest : MSBuildIntegrationTestBase + public class RazorCompileIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { + public RazorCompileIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task RazorCompile_Success_CompilesAssembly() diff --git a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorGenerateIntegrationTest.cs b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorGenerateIntegrationTest.cs index c5254cfe37..0834a37974 100644 --- a/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorGenerateIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/RazorGenerateIntegrationTest.cs @@ -10,10 +10,15 @@ using Xunit; namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests { - public class RazorGenerateIntegrationTest : MSBuildIntegrationTestBase + public class RazorGenerateIntegrationTest : MSBuildIntegrationTestBase, IClassFixture { private const string RazorGenerateTarget = "RazorGenerate"; + public RazorGenerateIntegrationTest(BuildServerTestFixture buildServer) + : base(buildServer) + { + } + [Fact] [InitializeTestProject("SimpleMvc")] public async Task RazorGenerate_Success_GeneratesFilesOnDisk()