public async Task Publish_WithLinkerAndCompression_IsIncremental() { // Arrange using var project = ProjectDirectory.Create("blazorhosted", additionalProjects: new[] { "blazorwasm", "razorclasslibrary" }); var result = await MSBuildProcessManager.DotnetMSBuild(project, target : "publish"); Assert.BuildPassed(result); var buildOutputDirectory = project.BuildOutputDirectory; // Act var compressedFilesFolder = Path.Combine("..", "blazorwasm", project.IntermediateOutputDirectory, "compress"); var thumbPrint = FileThumbPrint.CreateFolderThumbprint(project, compressedFilesFolder); // Assert for (var i = 0; i < 3; i++) { result = await MSBuildProcessManager.DotnetMSBuild(project); Assert.BuildPassed(result); var newThumbPrint = FileThumbPrint.CreateFolderThumbprint(project, compressedFilesFolder); Assert.Equal(thumbPrint.Count, newThumbPrint.Count); for (var j = 0; j < thumbPrint.Count; j++) { Assert.Equal(thumbPrint[j], newThumbPrint[j]); } } }
public async Task Publish_WithoutLinkerAndCompression_UpdatesFilesWhenSourcesChange() { // Arrange using var project = ProjectDirectory.Create("blazorhosted", additionalProjects: new[] { "blazorwasm", "razorclasslibrary" }); var result = await MSBuildProcessManager.DotnetMSBuild(project, target : "publish", args : "/p:BlazorWebAssemblyEnableLinking=false"); Assert.BuildPassed(result); // Act var mainAppDll = Path.Combine(project.DirectoryPath, project.PublishOutputDirectory, "wwwroot", "_framework", "blazorwasm.dll"); var mainAppDllThumbPrint = FileThumbPrint.Create(mainAppDll); var mainAppCompressedDll = Path.Combine(project.DirectoryPath, project.PublishOutputDirectory, "wwwroot", "_framework", "blazorwasm.dll.br"); var mainAppCompressedDllThumbPrint = FileThumbPrint.Create(mainAppCompressedDll); var programFile = Path.Combine(project.DirectoryPath, "..", "blazorwasm", "Program.cs"); var programFileContents = File.ReadAllText(programFile); File.WriteAllText(programFile, programFileContents.Replace("args", "arguments")); // Assert result = await MSBuildProcessManager.DotnetMSBuild(project, target : "publish", args : "/p:BlazorWebAssemblyEnableLinking=false"); Assert.BuildPassed(result); var newMainAppDllThumbPrint = FileThumbPrint.Create(mainAppDll); var newMainAppCompressedDllThumbPrint = FileThumbPrint.Create(mainAppCompressedDll); Assert.NotEqual(mainAppDllThumbPrint, newMainAppDllThumbPrint); Assert.NotEqual(mainAppCompressedDllThumbPrint, newMainAppCompressedDllThumbPrint); }
public async Task Build_GzipCompression_IsIncremental() { // Arrange using var project = ProjectDirectory.Create("blazorwasm", additionalProjects: new[] { "razorclasslibrary" }); var result = await MSBuildProcessManager.DotnetMSBuild(project); Assert.BuildPassed(result); var gzipCompressionDirectory = Path.Combine(project.IntermediateOutputDirectory, "build-gz"); Assert.DirectoryExists(result, gzipCompressionDirectory); // Act var thumbPrint = FileThumbPrint.CreateFolderThumbprint(project, gzipCompressionDirectory); // Assert for (var i = 0; i < 3; i++) { result = await MSBuildProcessManager.DotnetMSBuild(project); Assert.BuildPassed(result); var newThumbPrint = FileThumbPrint.CreateFolderThumbprint(project, gzipCompressionDirectory); Assert.Equal(thumbPrint.Count, newThumbPrint.Count); for (var j = 0; j < thumbPrint.Count; j++) { Assert.Equal(thumbPrint[j], newThumbPrint[j]); } } }
public async Task Build_IsIncremental() { // Arrange using var project = ProjectDirectory.Create("blazorwasm", additionalProjects: new[] { "razorclasslibrary" }); var result = await MSBuildProcessManager.DotnetMSBuild(project); Assert.BuildPassed(result); var buildOutputDirectory = project.BuildOutputDirectory; // Act var thumbPrint = FileThumbPrint.CreateFolderThumbprint(project, project.BuildOutputDirectory); // Assert for (var i = 0; i < 3; i++) { result = await MSBuildProcessManager.DotnetMSBuild(project); Assert.BuildPassed(result); var newThumbPrint = FileThumbPrint.CreateFolderThumbprint(project, project.BuildOutputDirectory); Assert.Equal(thumbPrint.Count, newThumbPrint.Count); for (var j = 0; j < thumbPrint.Count; j++) { Assert.Equal(thumbPrint[j], newThumbPrint[j]); } } }
public FileThumbPrint GetThumbPrint(string path) { path = Path.Combine(Project.DirectoryPath, path); return(FileThumbPrint.Create(path)); }