Skip to content
This repository was archived by the owner on Dec 14, 2018. It is now read-only.

Commit daa675d

Browse files
committed
Reduce number of PhysicalFileProvider instances created in functional tests
- #3066 - cache `TestServer` instances per site / configuration delegate - add new `TestHelper.GetOrCreateServer()` methods that use new cache - switch tests from `CreateServer()` to `GetOrCreateServer()` except in a few special cases - special cases likely test issues though `WebApiCompatShimBasicTest` ones may indicate an underlying bug - work around `inotify` limits with Core CLR on Linux - FYI `PhysicalFileProvider` instances are created in `IHostingEnvironment.Initialize()`, `RazorViewEngineOptionsSetup.ConfigureRazor()`, `RazorPreCompileModule.BeforeCompile()`, and a `MvcRazorHost` constructor that is called only from tooling - `IHostingEnvironment.Initialize()` called in `TestHelper.AddTestServices()` and `WebHostBuilder.Build()` i.e. the `TestServer` constructor - now create ~75 `TestServers` for the 51 sites we test - side benefit: xUnit reports functional tests execute for ~14.5s; was ~31.4s before this change
1 parent b574561 commit daa675d

File tree

81 files changed

+919
-764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+919
-764
lines changed

test/Microsoft.AspNet.Mvc.FunctionalTests/ActionResultTests.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class ActionResultTests
2525
public async Task BadRequestResult_CanBeReturned()
2626
{
2727
// Arrange
28-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
28+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
2929
var client = server.CreateClient();
3030
var input = "{\"SampleInt\":10}";
3131

@@ -47,7 +47,7 @@ public async Task BadRequestResult_CanBeReturned()
4747
public async Task CreatedResult_SetsRelativePathInLocationHeader()
4848
{
4949
// Arrange
50-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
50+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
5151
var client = server.CreateClient();
5252

5353
var request = new HttpRequestMessage(
@@ -67,7 +67,7 @@ public async Task CreatedResult_SetsRelativePathInLocationHeader()
6767
public async Task CreatedResult_SetsAbsolutePathInLocationHeader()
6868
{
6969
// Arrange
70-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
70+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
7171
var client = server.CreateClient();
7272

7373
var request = new HttpRequestMessage(
@@ -87,7 +87,7 @@ public async Task CreatedResult_SetsAbsolutePathInLocationHeader()
8787
public async Task CreatedResult_SetsQualifiedPathInLocationHeader()
8888
{
8989
// Arrange
90-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
90+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
9191
var client = server.CreateClient();
9292

9393
var request = new HttpRequestMessage(
@@ -109,7 +109,7 @@ public async Task CreatedResult_SetsQualifiedPathInLocationHeader()
109109
public async Task CreatedResult_SetsUriInLocationHeader()
110110
{
111111
// Arrange
112-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
112+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
113113
var client = server.CreateClient();
114114

115115
var request = new HttpRequestMessage(
@@ -129,7 +129,7 @@ public async Task CreatedResult_SetsUriInLocationHeader()
129129
public async Task CreatedAtActionResult_GeneratesUri_WithActionAndController()
130130
{
131131
// Arrange
132-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
132+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
133133
var client = server.CreateClient();
134134

135135
var request = new HttpRequestMessage(
@@ -149,7 +149,7 @@ public async Task CreatedAtActionResult_GeneratesUri_WithActionAndController()
149149
public async Task CreatedAtRouteResult_GeneratesUri_WithRouteValues()
150150
{
151151
// Arrange
152-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
152+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
153153
var client = server.CreateClient();
154154

155155
var request = new HttpRequestMessage(
@@ -169,7 +169,7 @@ public async Task CreatedAtRouteResult_GeneratesUri_WithRouteValues()
169169
public async Task CreatedAtRouteResult_GeneratesUri_WithRouteName()
170170
{
171171
// Arrange
172-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
172+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
173173
var client = server.CreateClient();
174174

175175
var request = new HttpRequestMessage(
@@ -189,7 +189,7 @@ public async Task CreatedAtRouteResult_GeneratesUri_WithRouteName()
189189
public async Task SerializableError_CanSerializeNormalObjects()
190190
{
191191
// Arrange
192-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
192+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
193193
var client = server.CreateClient();
194194

195195
var input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
@@ -212,7 +212,7 @@ public async Task SerializableError_CanSerializeNormalObjects()
212212
public async Task ContentResult_WritesContent_SetsDefaultContentTypeAndEncoding()
213213
{
214214
// Arrange
215-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
215+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
216216
var client = server.CreateClient();
217217
var request = new HttpRequestMessage(
218218
HttpMethod.Post,
@@ -232,7 +232,7 @@ public async Task ContentResult_WritesContent_SetsDefaultContentTypeAndEncoding(
232232
public async Task ContentResult_WritesContent_SetsContentTypeWithDefaultEncoding()
233233
{
234234
// Arrange
235-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
235+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
236236
var client = server.CreateClient();
237237
var request = new HttpRequestMessage(
238238
HttpMethod.Post,
@@ -252,7 +252,7 @@ public async Task ContentResult_WritesContent_SetsContentTypeWithDefaultEncoding
252252
public async Task ContentResult_WritesContent_SetsContentTypeAndEncoding()
253253
{
254254
// Arrange
255-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
255+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
256256
var client = server.CreateClient();
257257
var request = new HttpRequestMessage(
258258
HttpMethod.Post,
@@ -272,7 +272,7 @@ public async Task ContentResult_WritesContent_SetsContentTypeAndEncoding()
272272
public async Task ObjectResult_WithStatusCodeAndNoContent_SetsSameStatusCode()
273273
{
274274
// Arrange
275-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
275+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
276276
var client = server.CreateClient();
277277
var request = new HttpRequestMessage(
278278
HttpMethod.Get,
@@ -289,7 +289,7 @@ public async Task ObjectResult_WithStatusCodeAndNoContent_SetsSameStatusCode()
289289
public async Task HttpNotFoundObjectResult_NoResponseContent()
290290
{
291291
// Arrange
292-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
292+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
293293
var client = server.CreateClient();
294294

295295
var request = new HttpRequestMessage(
@@ -308,7 +308,7 @@ public async Task HttpNotFoundObjectResult_NoResponseContent()
308308
public async Task HttpNotFoundObjectResult_WithResponseContent()
309309
{
310310
// Arrange
311-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
311+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
312312
var client = server.CreateClient();
313313

314314
var request = new HttpRequestMessage(
@@ -327,7 +327,7 @@ public async Task HttpNotFoundObjectResult_WithResponseContent()
327327
public async Task HttpNotFoundObjectResult_WithDisposableObject()
328328
{
329329
// Arrange
330-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
330+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
331331
var client = server.CreateClient();
332332
var nameValueCollection = new List<KeyValuePair<string, string>>
333333
{

test/Microsoft.AspNet.Mvc.FunctionalTests/ActivatorTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class ActivatorTests
2020
public async Task ControllerThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked()
2121
{
2222
// Arrange
23-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
23+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
2424
var client = server.CreateClient();
2525

2626
var expectedMessage =
@@ -39,7 +39,7 @@ public async Task ControllerThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked
3939
public async Task PropertiesForPocoControllersAreInitialized()
4040
{
4141
// Arrange
42-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
42+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
4343
var client = server.CreateClient();
4444
var expected = "4|some-text";
4545

@@ -57,7 +57,7 @@ public async Task PropertiesForPocoControllersAreInitialized()
5757
public async Task PropertiesForTypesDerivingFromControllerAreInitialized()
5858
{
5959
// Arrange
60-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
60+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
6161
var client = server.CreateClient();
6262
var expected = "Hello world";
6363

@@ -72,7 +72,7 @@ public async Task PropertiesForTypesDerivingFromControllerAreInitialized()
7272
public async Task ViewActivator_ActivatesDefaultInjectedProperties()
7373
{
7474
// Arrange
75-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
75+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
7676
var client = server.CreateClient();
7777
var expected = @"<label for=""Hello"">Hello</label> world! /View/ConsumeServicesFromBaseType";
7878

@@ -87,7 +87,7 @@ public async Task ViewActivator_ActivatesDefaultInjectedProperties()
8787
public async Task ViewActivator_ActivatesAndContextualizesInjectedServices()
8888
{
8989
// Arrange
90-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
90+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
9191
var client = server.CreateClient();
9292
var expected = "4 test-value";
9393

@@ -102,7 +102,7 @@ public async Task ViewActivator_ActivatesAndContextualizesInjectedServices()
102102
public async Task ViewActivator_ActivatesServicesFromBaseType()
103103
{
104104
// Arrange
105-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
105+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
106106
var client = server.CreateClient();
107107
var expected = @"/content/scripts/test.js";
108108

@@ -117,7 +117,7 @@ public async Task ViewActivator_ActivatesServicesFromBaseType()
117117
public async Task ViewComponentActivator_Activates()
118118
{
119119
// Arrange
120-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
120+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
121121
var client = server.CreateClient();
122122
var expected = @"Random Number:4";
123123

@@ -133,7 +133,7 @@ public async Task ViewComponentActivator_Activates()
133133
public async Task ViewComponentThatCannotBeActivated_ThrowsWhenAttemptedToBeInvoked()
134134
{
135135
// Arrange
136-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
136+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
137137
var client = server.CreateClient();
138138
var expectedMessage =
139139
"Unable to resolve service for type 'ActivatorWebSite.CannotBeActivatedComponent+FakeType' " +
@@ -151,7 +151,7 @@ public async Task ViewComponentThatCannotBeActivated_ThrowsWhenAttemptedToBeInvo
151151
public async Task TagHelperActivation_ConstructorInjection_RendersProperly()
152152
{
153153
// Arrange
154-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
154+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
155155
var client = server.CreateClient();
156156
var expected = "<body><h2>Activation Test</h2>" +
157157
Environment.NewLine +

test/Microsoft.AspNet.Mvc.FunctionalTests/AntiforgeryTests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class AntiforgeryTests
2323
public async Task MultipleAFTokensWithinTheSamePage_GeneratesASingleCookieToken()
2424
{
2525
// Arrange
26-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
26+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
2727
var client = server.CreateClient();
2828

2929
// Act
@@ -45,7 +45,7 @@ public async Task MultipleAFTokensWithinTheSamePage_GeneratesASingleCookieToken(
4545
public async Task MultipleFormPostWithingASingleView_AreAllowed()
4646
{
4747
// Arrange
48-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
48+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
4949
var client = server.CreateClient();
5050

5151
// do a get response.
@@ -80,7 +80,7 @@ public async Task MultipleFormPostWithingASingleView_AreAllowed()
8080
public async Task InvalidCookieToken_Throws()
8181
{
8282
// Arrange
83-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
83+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
8484
var client = server.CreateClient();
8585

8686
var getResponse = await client.GetAsync("http://localhost/Account/Login");
@@ -112,7 +112,7 @@ public async Task InvalidCookieToken_Throws()
112112
public async Task InvalidFormToken_Throws()
113113
{
114114
// Arrange
115-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
115+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
116116
var client = server.CreateClient();
117117

118118
var getResponse = await client.GetAsync("http://localhost/Account/Login");
@@ -142,7 +142,7 @@ public async Task InvalidFormToken_Throws()
142142
public async Task IncompatibleCookieToken_Throws()
143143
{
144144
// Arrange
145-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
145+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
146146
var client = server.CreateClient();
147147

148148
// do a get response.
@@ -180,7 +180,7 @@ public async Task IncompatibleCookieToken_Throws()
180180
public async Task MissingCookieToken_Throws()
181181
{
182182
// Arrange
183-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
183+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
184184
var client = server.CreateClient();
185185

186186
// do a get response.
@@ -213,7 +213,7 @@ public async Task MissingCookieToken_Throws()
213213
public async Task MissingAFToken_Throws()
214214
{
215215
// Arrange
216-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
216+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
217217
var client = server.CreateClient();
218218
var getResponse = await client.GetAsync("http://localhost/Account/Login");
219219
var responseBody = await getResponse.Content.ReadAsStringAsync();
@@ -242,7 +242,7 @@ public async Task MissingAFToken_Throws()
242242
public async Task SetCookieAndHeaderBeforeFlushAsync_GeneratesCookieTokenAndHeader()
243243
{
244244
// Arrange
245-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
245+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
246246
var client = server.CreateClient();
247247

248248
// Act
@@ -260,7 +260,7 @@ public async Task SetCookieAndHeaderBeforeFlushAsync_GeneratesCookieTokenAndHead
260260
public async Task SetCookieAndHeaderBeforeFlushAsync_PostToForm()
261261
{
262262
// Arrange
263-
var server = TestHelper.CreateServer(_app, SiteName, _configureServices);
263+
var server = TestHelper.GetOrCreateServer(_app, SiteName, _configureServices);
264264
var client = server.CreateClient();
265265

266266
// do a get response.

0 commit comments

Comments
 (0)