@@ -13,7 +13,7 @@ public class PublishIntegrationTest
13
13
public async Task Publish_WithDefaultSettings_Works ( )
14
14
{
15
15
// Arrange
16
- using var project = ProjectDirectory . Create ( "standalone" , additionalProjects : new string [ ] { "razorclasslibrary" } ) ;
16
+ using var project = ProjectDirectory . Create ( "standalone" , additionalProjects : new [ ] { "razorclasslibrary" } ) ;
17
17
var result = await MSBuildProcessManager . DotnetMSBuild ( project , "Publish" ) ;
18
18
19
19
Assert . BuildPassed ( result ) ;
@@ -39,11 +39,49 @@ public async Task Publish_WithDefaultSettings_Works()
39
39
Assert . FileExists ( result , publishDirectory , "web.config" ) ;
40
40
}
41
41
42
+ [ Fact ]
43
+ public async Task Publish_WithNoBuild_Works ( )
44
+ {
45
+ // Arrange
46
+ using var project = ProjectDirectory . Create ( "standalone" , additionalProjects : new [ ] { "razorclasslibrary" } ) ;
47
+ var result = await MSBuildProcessManager . DotnetMSBuild ( project , "Build" ) ;
48
+
49
+ Assert . BuildPassed ( result ) ;
50
+
51
+ result = await MSBuildProcessManager . DotnetMSBuild ( project , "Publish" , "/p:NoBuild=true" ) ;
52
+
53
+ Assert . BuildPassed ( result ) ;
54
+
55
+ var publishDirectory = project . PublishOutputDirectory ;
56
+ var blazorPublishDirectory = Path . Combine ( publishDirectory , Path . GetFileNameWithoutExtension ( project . ProjectFilePath ) ) ;
57
+
58
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "blazor.boot.json" ) ;
59
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "blazor.webassembly.js" ) ;
60
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "wasm" , "mono.wasm" ) ;
61
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "wasm" , "mono.js" ) ;
62
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "_bin" , "standalone.dll" ) ;
63
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "_bin" , "Microsoft.Extensions.Logging.Abstractions.dll" ) ; // Verify dependencies are part of the output.
64
+
65
+ // Verify static assets are in the publish directory
66
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "index.html" ) ;
67
+
68
+ // Verify static web assets from referenced projects are copied.
69
+ // Uncomment once https://github.com/aspnet/AspNetCore/issues/17426 is resolved.
70
+ // Assert.FileExists(result, blazorPublishDirectory, "dist", "_content", "RazorClassLibrary", "wwwroot", "exampleJsInterop.js");
71
+ // Assert.FileExists(result, blazorPublishDirectory, "dist", "_content", "RazorClassLibrary", "styles.css");
72
+
73
+ // Verify static assets are in the publish directory
74
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "index.html" ) ;
75
+
76
+ // Verify web.config
77
+ Assert . FileExists ( result , publishDirectory , "web.config" ) ;
78
+ }
79
+
42
80
[ Fact ]
43
81
public async Task Publish_WithLinkOnBuildDisabled_Works ( )
44
82
{
45
83
// Arrange
46
- using var project = ProjectDirectory . Create ( "standalone" , additionalProjects : new string [ ] { "razorclasslibrary" } ) ;
84
+ using var project = ProjectDirectory . Create ( "standalone" , additionalProjects : new [ ] { "razorclasslibrary" } ) ;
47
85
project . AddProjectFileContent (
48
86
@"<PropertyGroup>
49
87
<BlazorLinkOnBuild>false</BlazorLinkOnBuild>
@@ -73,5 +111,83 @@ public async Task Publish_WithLinkOnBuildDisabled_Works()
73
111
// Verify web.config
74
112
Assert . FileExists ( result , publishDirectory , "web.config" ) ;
75
113
}
114
+
115
+ [ Fact ]
116
+ public async Task Publish_HostedApp_Works ( )
117
+ {
118
+ // Arrange
119
+ using var project = ProjectDirectory . Create ( "blazorhosted" , additionalProjects : new [ ] { "standalone" , "razorclasslibrary" , } ) ;
120
+ project . TargetFramework = "netcoreapp3.1" ;
121
+ var result = await MSBuildProcessManager . DotnetMSBuild ( project , "Publish" ) ;
122
+
123
+ Assert . BuildPassed ( result ) ;
124
+
125
+ var publishDirectory = project . PublishOutputDirectory ;
126
+ // Make sure the main project exists
127
+ Assert . FileExists ( result , publishDirectory , "blazorhosted.dll" ) ;
128
+
129
+ var blazorPublishDirectory = Path . Combine ( publishDirectory , "standalone" ) ;
130
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "blazor.boot.json" ) ;
131
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "blazor.webassembly.js" ) ;
132
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "wasm" , "mono.wasm" ) ;
133
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "wasm" , "mono.js" ) ;
134
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "_bin" , "standalone.dll" ) ;
135
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "_bin" , "Microsoft.Extensions.Logging.Abstractions.dll" ) ; // Verify dependencies are part of the output.
136
+
137
+ // Verify static assets are in the publish directory
138
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "index.html" ) ;
139
+
140
+ // Verify static web assets from referenced projects are copied.
141
+ Assert . FileExists ( result , publishDirectory , "wwwroot" , "_content" , "RazorClassLibrary" , "wwwroot" , "exampleJsInterop.js" ) ;
142
+ Assert . FileExists ( result , publishDirectory , "wwwroot" , "_content" , "RazorClassLibrary" , "styles.css" ) ;
143
+
144
+ // Verify static assets are in the publish directory
145
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "index.html" ) ;
146
+
147
+ // Verify web.config
148
+ Assert . FileExists ( result , publishDirectory , "web.config" ) ;
149
+
150
+ var blazorConfig = Path . Combine ( publishDirectory , "standalone.blazor.config" ) ;
151
+ Assert . FileContains ( result , blazorConfig , "." ) ;
152
+ }
153
+
154
+ [ Fact ]
155
+ public async Task Publish_HostedApp_WithNoBuild_Works ( )
156
+ {
157
+ // Arrange
158
+ using var project = ProjectDirectory . Create ( "blazorhosted" , additionalProjects : new [ ] { "standalone" , "razorclasslibrary" , } ) ;
159
+ project . TargetFramework = "netcoreapp3.1" ;
160
+ var result = await MSBuildProcessManager . DotnetMSBuild ( project , "Build" ) ;
161
+
162
+ Assert . BuildPassed ( result ) ;
163
+
164
+ result = await MSBuildProcessManager . DotnetMSBuild ( project , "Publish" , "/p:NoBuild=true" ) ;
165
+
166
+ var publishDirectory = project . PublishOutputDirectory ;
167
+ // Make sure the main project exists
168
+ Assert . FileExists ( result , publishDirectory , "blazorhosted.dll" ) ;
169
+
170
+ var blazorPublishDirectory = Path . Combine ( publishDirectory , "standalone" ) ;
171
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "blazor.boot.json" ) ;
172
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "blazor.webassembly.js" ) ;
173
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "wasm" , "mono.wasm" ) ;
174
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "wasm" , "mono.js" ) ;
175
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "_bin" , "standalone.dll" ) ;
176
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "_framework" , "_bin" , "Microsoft.Extensions.Logging.Abstractions.dll" ) ; // Verify dependencies are part of the output.
177
+
178
+ // Verify static assets are in the publish directory
179
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "index.html" ) ;
180
+
181
+ // Verify static web assets from referenced projects are copied.
182
+ // Uncomment once https://github.com/aspnet/AspNetCore/issues/17426 is resolved.
183
+ // Assert.FileExists(result, publishDirectory, "wwwroot", "_content", "RazorClassLibrary", "wwwroot", "exampleJsInterop.js");
184
+ // Assert.FileExists(result, publishDirectory, "wwwroot", "_content", "RazorClassLibrary", "styles.css");
185
+
186
+ // Verify static assets are in the publish directory
187
+ Assert . FileExists ( result , blazorPublishDirectory , "dist" , "index.html" ) ;
188
+
189
+ // Verify web.config
190
+ Assert . FileExists ( result , publishDirectory , "web.config" ) ;
191
+ }
76
192
}
77
193
}
0 commit comments