Make RazorCompileOnBuild=true

Fixes #1986
This commit is contained in:
Pranav K 2018-02-20 15:50:25 -08:00
parent 69a32c68e2
commit 41c923926e
9 changed files with 58 additions and 56 deletions

View File

@ -79,7 +79,7 @@ Copyright (c) .NET Foundation. All rights reserved.
Default values for properties that affect Razor targets to the standard build lifecycle.
-->
<PropertyGroup Condition="'$(RazorCompileOnBuild)'==''">
<RazorCompileOnBuild>false</RazorCompileOnBuild>
<RazorCompileOnBuild>true</RazorCompileOnBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(RazorCompileOnPublish)'==''">

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
var thumbprintLookup = new Dictionary<string, FileThumbPrint>();
// Act 1
var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
var directoryPath = Path.Combine(result.Project.DirectoryPath, IntermediateOutputPath);
var filesToIgnore = new[]
@ -45,7 +45,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
// We want to make sure nothing changed between multiple incremental builds.
using (var razorGenDirectoryLock = LockDirectory(RazorIntermediateOutputPath))
{
result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true");
result = await DotnetMSBuild("Build");
}
Assert.BuildPassed(result);
@ -63,7 +63,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
// Act - 1
var expectedTagHelperCacheContent = @"""Name"":""SimpleMvc.SimpleTagHelper""";
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
var file = Path.Combine(Project.DirectoryPath, "SimpleTagHelper.cs");
var tagHelperOutputCache = Path.Combine(IntermediateOutputPath, "SimpleMvc.TagHelpers.output.cache");
var generatedFile = Path.Combine(RazorIntermediateOutputPath, "Views", "Home", "Index.cs");
@ -76,7 +76,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
// Act - 2
// Update the source content and build. We should expect the outputs to be regenerated.
ReplaceContent(string.Empty, file);
result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true");
result = await DotnetMSBuild("Build");
// Assert - 2
Assert.BuildPassed(result);

View File

@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
private async Task Build_SimpleMvc_CanBuildSuccessfully(MSBuildProcessKind msBuildProcessKind)
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true", msBuildProcessKind: msBuildProcessKind);
var result = await DotnetMSBuild("Build", msBuildProcessKind: msBuildProcessKind);
Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "SimpleMvc.dll");
@ -50,7 +50,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
Directory.Delete(Path.Combine(Project.DirectoryPath, "Views"), recursive: true);
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "SimpleMvc.dll");
@ -61,9 +61,9 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[Fact]
[InitializeTestProject("SimpleMvc")]
public async Task Build_SimpleMvc_NoopsWithRazorCompileOnPublish()
public async Task Build_SimpleMvc_NoopsWithRazorCompileOnBuild_False()
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnPublish=true");
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=false");
Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "SimpleMvc.dll");
@ -79,7 +79,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
// Introducing a C# semantic error
ReplaceContent("@{ var foo = \"\".Substring(\"bleh\"); }", "Views", "Home", "Index.cshtml");
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
Assert.BuildFailed(result);
@ -95,7 +95,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimplePages")]
public async Task Build_Works_WhenFilesAtDifferentPathsHaveSameNamespaceHierarchy()
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
Assert.BuildPassed(result);
@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
public async Task Build_RazorOutputPath_SetToNonDefault()
{
var customOutputPath = Path.Combine("bin", Configuration, TargetFramework, "Razor");
var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true /p:RazorOutputPath={customOutputPath}");
var result = await DotnetMSBuild("Build", $"/p:RazorOutputPath={customOutputPath}");
Assert.BuildPassed(result);
@ -124,7 +124,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
public async Task Build_MvcRazorOutputPath_SetToNonDefault()
{
var customOutputPath = Path.Combine("bin", Configuration, TargetFramework, "Razor");
var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true /p:MvcRazorOutputPath={customOutputPath}");
var result = await DotnetMSBuild("Build", $"/p:MvcRazorOutputPath={customOutputPath}");
Assert.BuildPassed(result);
@ -139,7 +139,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Build_SkipsCopyingBinariesToOutputDirectory_IfCopyBuildOutputToOutputDirectory_IsUnset()
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true /p:CopyBuildOutputToOutputDirectory=false");
var result = await DotnetMSBuild("Build", "/p:CopyBuildOutputToOutputDirectory=false");
Assert.BuildPassed(result);
@ -154,7 +154,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Build_SkipsCopyingBinariesToOutputDirectory_IfCopyOutputSymbolsToOutputDirectory_IsUnset()
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true /p:CopyOutputSymbolsToOutputDirectory=false");
var result = await DotnetMSBuild("Build", "/p:CopyOutputSymbolsToOutputDirectory=false");
Assert.BuildPassed(result);
@ -168,7 +168,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Build_Works_WhenSymbolsAreNotGenerated()
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true /p:DebugType=none");
var result = await DotnetMSBuild("Build", "/p:DebugType=none");
Assert.BuildPassed(result);
@ -184,7 +184,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("AppWithP2PReference", "ClassLibrary")]
public async Task Build_WithP2P_CopiesRazorAssembly()
{
var result = await DotnetMSBuild("Build", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
Assert.BuildPassed(result);
@ -211,7 +211,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
AddProjectFileContent(additionalProjectContent);
Directory.CreateDirectory(Path.Combine(Project.DirectoryPath, "..", "LinkedDir"));
var result = await DotnetMSBuild("Build", "/t:_IntrospectRazorEmbeddedResources /p:RazorCompileOnBuild=true /p:EmbedRazorGenerateSources=true");
var result = await DotnetMSBuild("Build", "/t:_IntrospectRazorEmbeddedResources /p:EmbedRazorGenerateSources=true");
Assert.BuildPassed(result);

View File

@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task RazorSdk_AddsCshtmlFilesToUpToDateCheckInput()
{
var result = await DotnetMSBuild("_IntrospectUpToDateCheckInput", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("_IntrospectUpToDateCheckInput");
Assert.BuildPassed(result);
Assert.BuildOutputContainsLine(result, $"UpToDateCheckInput: {Path.Combine("Views", "Home", "Index.cshtml")}");

View File

@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
var result = await DotnetMSBuild(
"Build",
$"/p:RazorCompileOnBuild=true /p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true",
$"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true",
msBuildProcessKind: msBuildProcessKind);
Assert.BuildPassed(result);
@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
var result = await DotnetMSBuild(
"Build",
$"/p:RazorCompileOnBuild=true /p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true");
$"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true");
Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "SimpleMvc.dll");
@ -74,7 +74,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
var result = await DotnetMSBuild(
"Build",
$"/p:RazorCompileOnBuild=true /p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true");
$"/p:UseRazorBuildServer=true /p:_RazorBuildServerPipeName={_pipeName} /p:_RazorForceBuildServer=true");
Assert.BuildPassed(result);
Assert.FileExists(result, OutputPath, "Whitespace in name.dll");

View File

@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Build_WithMvc_AddsConfigurationMetadata()
{
var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
Assert.BuildPassed(result);
@ -39,7 +39,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Build_WithGenerateRazorAssemblyInfo_False_SuppressesConfigurationMetadata()
{
var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true /p:GenerateRazorAssemblyInfo=false");
var result = await DotnetMSBuild("Build", "/p:GenerateRazorAssemblyInfo=false");
Assert.BuildPassed(result);
@ -67,7 +67,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
TargetFramework = "netstandard2.0";
var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Build");
Assert.BuildPassed(result);

View File

@ -14,7 +14,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
// Using Compile here instead of CompileDesignTime because the latter is only defined when using
// the VS targets. This is a close enough simulation for an SDK project
var result = await DotnetMSBuild("Compile", "/p:RazorCompileOnBuild=true /p:DesignTimeBuild=true /clp:PerformanceSummary");
var result = await DotnetMSBuild("Compile", "/p:DesignTimeBuild=true /clp:PerformanceSummary");
Assert.BuildPassed(result);
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.dll");

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
public async Task Pack_Works_IncludesRazorAssembly()
{
TargetFramework = "netstandard2.0";
var result = await DotnetMSBuild("Pack", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Pack");
Assert.BuildPassed(result);
@ -85,7 +85,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
public async Task Pack_IncludesRazorFilesAsContent_WhenIncludeRazorContentInPack_IsSet()
{
TargetFramework = "netstandard2.0";
var result = await DotnetMSBuild("Pack", "/p:RazorCompileOnBuild=true /p:IncludeRazorContentInPack=true");
var result = await DotnetMSBuild("Pack", "/p:IncludeRazorContentInPack=true");
Assert.BuildPassed(result);

View File

@ -17,9 +17,6 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.BuildPassed(result);
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.dll");
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.Views.dll");
@ -32,9 +29,9 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[Fact]
[InitializeTestProject("SimpleMvc")]
public async Task Publish_WithRazorCompileOnBuild_PublishesAssembly()
public async Task Publish_PublishesAssembly()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Publish");
Assert.BuildPassed(result);
@ -57,7 +54,26 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Publish_WithRazorCompileOnPublish_PublishesAssembly()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnPublish=true");
var result = await DotnetMSBuild("Publish");
Assert.BuildPassed(result);
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.Views.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.Views.pdb");
// By default refs and .cshtml files will not be copied on publish
Assert.FileCountEquals(result, 0, Path.Combine(PublishOutputPath, "refs"), "*.dll");
Assert.FileCountEquals(result, 0, Path.Combine(PublishOutputPath, "Views"), "*.cshtml");
}
[Fact]
[InitializeTestProject("SimpleMvc")]
public async Task Publish_WithRazorCompileOnBuildFalse_PublishesAssembly()
{
// RazorCompileOnBuild is turned off, but RazorCompileOnPublish should still be enabled
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=false");
Assert.BuildPassed(result);
@ -96,9 +112,6 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
Assert.BuildPassed(result);
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.dll");
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.Views.dll");
@ -115,7 +128,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
{
Directory.Delete(Path.Combine(Project.DirectoryPath, "Views"), recursive: true);
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Publish");
Assert.BuildPassed(result);
@ -162,7 +175,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Publish_SkipsCopyingBinariesToOutputDirectory_IfCopyBuildOutputToOutputDirectory_IsUnset()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=true /p:CopyBuildOutputToPublishDirectory=false");
var result = await DotnetMSBuild("Publish", "/p:CopyBuildOutputToPublishDirectory=false");
Assert.BuildPassed(result);
@ -177,7 +190,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Publish_SkipsCopyingBinariesToOutputDirectory_IfCopyOutputSymbolsToOutputDirectory_IsUnset()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=true /p:CopyOutputSymbolsToPublishDirectory=false");
var result = await DotnetMSBuild("Publish", "/p:CopyOutputSymbolsToPublishDirectory=false");
Assert.BuildPassed(result);
@ -191,7 +204,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Publish_Works_WhenSymbolsAreNotGenerated()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=true /p:DebugType=none");
var result = await DotnetMSBuild("Publish", "/p:DebugType=none");
Assert.BuildPassed(result);
@ -207,13 +220,10 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Publish_IncludeCshtmlAndRefAssemblies_CopiesFiles()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnPublish=true /p:CopyRazorGenerateFilesToPublishDirectory=true /p:CopyRefAssembliesToPublishDirectory=true");
var result = await DotnetMSBuild("Publish", "/p:CopyRazorGenerateFilesToPublishDirectory=true /p:CopyRefAssembliesToPublishDirectory=true");
Assert.BuildPassed(result);
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.dll");
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.Views.dll");
@ -228,13 +238,10 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("SimpleMvc")]
public async Task Publish_MvcRazorExcludeFilesFromPublish_False_CopiesFiles()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnPublish=true /p:MvcRazorExcludeViewFilesFromPublish=false /p:MvcRazorExcludeRefAssembliesFromPublish=false");
var result = await DotnetMSBuild("Publish", "/p:MvcRazorExcludeViewFilesFromPublish=false /p:MvcRazorExcludeRefAssembliesFromPublish=false");
Assert.BuildPassed(result);
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.dll");
Assert.FileDoesNotExist(result, OutputPath, "SimpleMvc.Views.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.dll");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.pdb");
Assert.FileExists(result, PublishOutputPath, "SimpleMvc.Views.dll");
@ -249,7 +256,7 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("AppWithP2PReference", "ClassLibrary")]
public async Task Publish_WithP2P_AndRazorCompileOnBuild_CopiesRazorAssembly()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnBuild=true");
var result = await DotnetMSBuild("Publish");
Assert.BuildPassed(result);
@ -267,15 +274,10 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
[InitializeTestProject("AppWithP2PReference", "ClassLibrary")]
public async Task Publish_WithP2P_AndRazorCompileOnPublish_CopiesRazorAssembly()
{
var result = await DotnetMSBuild("Publish", "/p:RazorCompileOnPublish=true");
var result = await DotnetMSBuild("Publish");
Assert.BuildPassed(result);
Assert.FileDoesNotExist(result, OutputPath, "AppWithP2PReference.Views.dll");
Assert.FileDoesNotExist(result, OutputPath, "AppWithP2PReference.Views.pdb");
Assert.FileDoesNotExist(result, OutputPath, "ClassLibrary.Views.dll");
Assert.FileDoesNotExist(result, OutputPath, "ClassLibrary.Views.pdb");
Assert.FileExists(result, PublishOutputPath, "AppWithP2PReference.dll");
Assert.FileExists(result, PublishOutputPath, "AppWithP2PReference.pdb");
Assert.FileExists(result, PublishOutputPath, "AppWithP2PReference.Views.dll");