From c2932674216e0dd72b60991fa303fbfd8867d3b1 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Wed, 14 Feb 2018 18:52:41 -0800 Subject: [PATCH] Fixed unnecessary invocation of TagHelper target --- ...etCore.Razor.Design.CodeGeneration.targets | 10 ++-- .../BuildIncrementalismTest.cs | 60 +++++++++++++++++++ 2 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 test/Microsoft.AspNetCore.Razor.Design.Test/IntegrationTests/BuildIncrementalismTest.cs diff --git a/src/Microsoft.AspNetCore.Razor.Design/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets b/src/Microsoft.AspNetCore.Razor.Design/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets index 8215f37eaf..1eb7d2baad 100644 --- a/src/Microsoft.AspNetCore.Razor.Design/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets +++ b/src/Microsoft.AspNetCore.Razor.Design/build/netstandard2.0/Microsoft.AspNetCore.Razor.Design.CodeGeneration.targets @@ -60,11 +60,11 @@ --> - - + AlwaysCreate="true" /> + + + + (); + + // Act 1 + var result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true"); + + var directoryPath = Path.Combine(result.Project.DirectoryPath, IntermediateOutputPath); + var filesToIgnore = new[] + { + // These files are generated on every build. + Path.Combine(directoryPath, "SimpleMvc.csproj.CopyComplete"), + Path.Combine(directoryPath, "SimpleMvc.csproj.FileListAbsolute.txt"), + }; + var files = Directory.GetFiles(directoryPath).Where(p => !filesToIgnore.Contains(p)); + foreach (var file in files) + { + var thumbprint = GetThumbPrint(file); + thumbprintLookup[file] = thumbprint; + } + + // Assert 1 + Assert.BuildPassed(result); + + // Act & Assert 2 + for (var i = 0; i < 2; i++) + { + // We want to make sure nothing changed between multiple incremental builds. + using (var razorGenDirectoryLock = LockDirectory(RazorIntermediateOutputPath)) + { + result = await DotnetMSBuild("Build", $"/p:RazorCompileOnBuild=true"); + } + + Assert.BuildPassed(result); + foreach (var file in files) + { + var thumbprint = GetThumbPrint(file); + Assert.Equal(thumbprintLookup[file], thumbprint); + } + } + } + } +}