React to IntegrationTesting changes

This commit is contained in:
Chris Ross (ASP.NET) 2018-05-11 10:15:34 -07:00
parent 533e464712
commit 63c00b3c68
23 changed files with 105 additions and 270 deletions

View File

@ -42,6 +42,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{7E80C58E
build\Key.snk = build\Key.snk build\Key.snk = build\Key.snk
build\native.targets = build\native.targets build\native.targets = build\native.targets
build\repo.props = build\repo.props build\repo.props = build\repo.props
build\sources.props = build\sources.props
build\testsite.props = build\testsite.props build\testsite.props = build\testsite.props
EndProjectSection EndProjectSection
EndProject EndProject

View File

@ -1,10 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<!-- Using shorter assembly name instead of Microsoft.AspNetCore.Server.Kestrel.Performance because https://github.com/dotnet/BenchmarkDotNet/issues/498 --> <!-- Using shorter assembly name instead of Microsoft.AspNetCore.Server.Kestrel.Performance because https://github.com/dotnet/BenchmarkDotNet/issues/498 -->
<AssemblyName>IIS.Performance</AssemblyName> <AssemblyName>IIS.Performance</AssemblyName>
<RootNamespace>Microsoft.AspNetCore.Server.IIS.Performance</RootNamespace> <RootNamespace>Microsoft.AspNetCore.Server.IIS.Performance</RootNamespace>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.2</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<ServerGarbageCollection>true</ServerGarbageCollection> <ServerGarbageCollection>true</ServerGarbageCollection>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

View File

@ -1,10 +1,8 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.IO; using System.IO;
using System.Net.Http; using System.Net.Http;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running; using BenchmarkDotNet.Running;
@ -17,7 +15,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Performance
[AspNetCoreBenchmark(typeof(FirstRequestConfig))] [AspNetCoreBenchmark(typeof(FirstRequestConfig))]
public class StartupTimeBenchmark public class StartupTimeBenchmark
{ {
private IApplicationDeployer _deployer; private ApplicationDeployer _deployer;
public HttpClient _client; public HttpClient _client;
[IterationSetup] [IterationSetup]
@ -32,7 +30,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Performance
SiteName = "HttpTestSite", SiteName = "HttpTestSite",
TargetFramework = "netcoreapp2.1", TargetFramework = "netcoreapp2.1",
ApplicationType = ApplicationType.Portable, ApplicationType = ApplicationType.Portable,
ANCMVersion = ANCMVersion.AspNetCoreModuleV2 AncmVersion = AncmVersion.AspNetCoreModuleV2
}; };
_deployer = ApplicationDeployerFactory.Create(deploymentParameters, NullLoggerFactory.Instance); _deployer = ApplicationDeployerFactory.Create(deploymentParameters, NullLoggerFactory.Instance);
_client = _deployer.DeployAsync().Result.HttpClient; _client = _deployer.DeployAsync().Result.HttpClient;

View File

@ -1,4 +1,4 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup> </PropertyGroup>
@ -14,7 +14,7 @@
<MicrosoftAspNetCoreHttpOverridesPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreHttpOverridesPackageVersion> <MicrosoftAspNetCoreHttpOverridesPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreHttpOverridesPackageVersion>
<MicrosoftAspNetCoreHttpPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreHttpPackageVersion> <MicrosoftAspNetCoreHttpPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreHttpPackageVersion>
<MicrosoftAspNetCoreHttpSysSourcesPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreHttpSysSourcesPackageVersion> <MicrosoftAspNetCoreHttpSysSourcesPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreHttpSysSourcesPackageVersion>
<MicrosoftAspNetCoreServerIntegrationTestingPackageVersion>0.6.0-preview1-34217</MicrosoftAspNetCoreServerIntegrationTestingPackageVersion> <MicrosoftAspNetCoreServerIntegrationTestingPackageVersion>0.6.0-a-preview1-inttesting-17031</MicrosoftAspNetCoreServerIntegrationTestingPackageVersion>
<MicrosoftAspNetCoreServerKestrelPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreServerKestrelPackageVersion> <MicrosoftAspNetCoreServerKestrelPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreServerKestrelPackageVersion>
<MicrosoftAspNetCoreTestHostPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreTestHostPackageVersion> <MicrosoftAspNetCoreTestHostPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreTestHostPackageVersion>
<MicrosoftAspNetCoreTestingPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreTestingPackageVersion> <MicrosoftAspNetCoreTestingPackageVersion>2.2.0-preview1-34217</MicrosoftAspNetCoreTestingPackageVersion>

View File

@ -19,8 +19,6 @@
<PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" /> <PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting" Version="$(MicrosoftAspNetCoreServerIntegrationTestingPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" /> <PackageReference Include="Microsoft.Extensions.CommandLineUtils.Sources" Version="$(MicrosoftExtensionsCommandLineUtilsSourcesPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" /> <PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
<PackageReference Include="System.Net.WebSockets.WebSocketProtocol" Version="$(SystemNetWebSocketsWebSocketProtocolPackageVersion)" /> <PackageReference Include="System.Net.WebSockets.WebSocketProtocol" Version="$(SystemNetWebSocketsWebSocketProtocolPackageVersion)" />

View File

@ -1,17 +1,17 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if NET461
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class AuthenticationTests public class AuthenticationTests
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;
@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
[ConditionalFact] [ConditionalFact]
public async Task Authentication_InProcess_IISExpressAsync() public async Task Authentication_InProcess()
{ {
var response = await _fixture.Client.GetAsync("/AuthenticationAnonymous"); var response = await _fixture.Client.GetAsync("/AuthenticationAnonymous");
@ -61,7 +61,3 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
} }
#elif NETCOREAPP2_1
#else
#error Target frameworks need to be updated
#endif

View File

@ -2,12 +2,14 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class EnvironmentVariableTests public class EnvironmentVariableTests
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -3,12 +3,14 @@
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class FeatureCollectionTest public class FeatureCollectionTest
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -3,12 +3,14 @@
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class HelloWorldInProcessTests public class HelloWorldInProcessTests
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;
@ -19,7 +21,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
[ConditionalFact] [ConditionalFact]
public async Task HelloWorld_InProcess_IISExpress_CoreClr_X64_Portable() public async Task HelloWorld_InProcess()
{ {
Assert.Equal("Hello World", await _fixture.Client.GetStringAsync("/HelloWorld")); Assert.Equal("Hello World", await _fixture.Client.GetStringAsync("/HelloWorld"));

View File

@ -3,12 +3,14 @@
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class InvalidReadWriteOperationTests public class InvalidReadWriteOperationTests
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -2,12 +2,14 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class LargeResponseBodyTests public class LargeResponseBodyTests
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -4,6 +4,7 @@
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Net.Http.Headers; using Microsoft.Net.Http.Headers;
using Xunit; using Xunit;
@ -11,7 +12,7 @@ using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class ResponseHeaders public class ResponseHeaders
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -2,12 +2,14 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class ResponseInvalidOrderingTest public class ResponseInvalidOrderingTest
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -2,12 +2,14 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class ServerVariablesTest public class ServerVariablesTest
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -15,6 +15,7 @@ using Xunit.Sdk;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[SkipIfIISExpressSchemaMissingInProcess]
public class StartupTests : LoggedTest public class StartupTests : LoggedTest
{ {
public StartupTests(ITestOutputHelper output) : base(output) public StartupTests(ITestOutputHelper output) : base(output)
@ -25,12 +26,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
[Fact] [Fact]
public async Task ExpandEnvironmentVariableInWebConfig() public async Task ExpandEnvironmentVariableInWebConfig()
{ {
#if NET461
// use the dotnet on PATH
var dotnetLocation = "dotnet";
#else
var dotnetLocation = DotNetMuxer.MuxerPathOrDefault(); var dotnetLocation = DotNetMuxer.MuxerPathOrDefault();
#endif
using (StartLog(out var loggerFactory)) using (StartLog(out var loggerFactory))
{ {
var logger = loggerFactory.CreateLogger("HelloWorldTest"); var logger = loggerFactory.CreateLogger("HelloWorldTest");
@ -96,9 +92,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
#if NETCOREAPP2_1 [Fact]
[Fact] // Consistently fails on CI for net461
public async Task StandaloneApplication_ExpectCorrectPublish() public async Task StandaloneApplication_ExpectCorrectPublish()
{ {
using (StartLog(out var loggerFactory)) using (StartLog(out var loggerFactory))
@ -133,7 +127,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
[Fact] // Consistently fails on CI for net461 [Fact]
public async Task StandaloneApplication_AbsolutePathToExe_ExpectCorrectPublish() public async Task StandaloneApplication_AbsolutePathToExe_ExpectCorrectPublish()
{ {
using (StartLog(out var loggerFactory)) using (StartLog(out var loggerFactory))
@ -170,11 +164,6 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
#elif NET461
#else
#error Target frameworks need to be updated
#endif
[Fact] [Fact]
public async Task DetectsOveriddenServer() public async Task DetectsOveriddenServer()
{ {
@ -200,9 +189,9 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Http.config"), ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Http.config"),
SiteName = "HttpTestSite", // This is configured in the Http.config SiteName = "HttpTestSite", // This is configured in the Http.config
TargetFramework = "netcoreapp2.1", TargetFramework = Tfm.NetCoreApp22,
ApplicationType = ApplicationType.Portable, ApplicationType = ApplicationType.Portable,
ANCMVersion = ANCMVersion.AspNetCoreModuleV2 AncmVersion = AncmVersion.AspNetCoreModuleV2
}; };
} }

View File

@ -6,12 +6,14 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit; using Microsoft.AspNetCore.Testing.xunit;
using Xunit; using Xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
[Collection(IISTestSiteCollection.Name)] [Collection(IISTestSiteCollection.Name)]
[SkipIfIISExpressSchemaMissingInProcess]
public class SynchronousReadAndWriteTests public class SynchronousReadAndWriteTests
{ {
private readonly IISTestSiteFixture _fixture; private readonly IISTestSiteFixture _fixture;

View File

@ -1,10 +1,10 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if NETCOREAPP2_1
using System.IO; using System.IO;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting; using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing; using Microsoft.Extensions.Logging.Testing;
using Xunit; using Xunit;
@ -19,47 +19,27 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
} }
[Theory] public static TestMatrix TestVariants
[InlineData(ANCMVersion.AspNetCoreModule)] => TestMatrix.ForServers(ServerType.IISExpress)
[InlineData(ANCMVersion.AspNetCoreModuleV2)] .WithTfms(Tfm.NetCoreApp22, Tfm.Net461)
public Task HelloWorld_IISExpress_Clr_X64_Portable(ANCMVersion ancmVersion) .WithAllApplicationTypes()
{ .WithAllAncmVersions();
return HelloWorld(RuntimeFlavor.Clr, ApplicationType.Portable, ancmVersion);
}
[Theory] [ConditionalTheory]
[InlineData(ANCMVersion.AspNetCoreModule)] [MemberData(nameof(TestVariants))]
[InlineData(ANCMVersion.AspNetCoreModuleV2)] public async Task HelloWorld(TestVariant variant)
public Task HelloWorld_IISExpress_CoreClr_X64_Portable(ANCMVersion ancmVersion)
{ {
return HelloWorld(RuntimeFlavor.CoreClr, ApplicationType.Portable, ancmVersion); var testName = $"HelloWorld_{variant.Tfm}";
}
[Theory]
[InlineData(ANCMVersion.AspNetCoreModule)]
[InlineData(ANCMVersion.AspNetCoreModuleV2)]
public Task HelloWorld_IISExpress_CoreClr_X64_Standalone(ANCMVersion ancmVersion)
{
return HelloWorld(RuntimeFlavor.CoreClr, ApplicationType.Standalone, ancmVersion);
}
private async Task HelloWorld(RuntimeFlavor runtimeFlavor, ApplicationType applicationType, ANCMVersion ancmVersion)
{
var serverType = ServerType.IISExpress;
var architecture = RuntimeArchitecture.x64;
var testName = $"HelloWorld_{runtimeFlavor}";
using (StartLog(out var loggerFactory, testName)) using (StartLog(out var loggerFactory, testName))
{ {
var logger = loggerFactory.CreateLogger("HelloWorldTest"); var logger = loggerFactory.CreateLogger("HelloWorldTest");
var deploymentParameters = new DeploymentParameters(Helpers.GetOutOfProcessTestSitesPath(), serverType, runtimeFlavor, architecture) var deploymentParameters = new DeploymentParameters(variant)
{ {
ApplicationPath = Helpers.GetOutOfProcessTestSitesPath(),
EnvironmentName = "HelloWorld", // Will pick the Start class named 'StartupHelloWorld', EnvironmentName = "HelloWorld", // Will pick the Start class named 'StartupHelloWorld',
ServerConfigTemplateContent = (serverType == ServerType.IISExpress) ? File.ReadAllText("AppHostConfig/Http.config") : null, ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Http.config"),
SiteName = "HttpTestSite", // This is configured in the Http.config SiteName = "HttpTestSite", // This is configured in the Http.config
TargetFramework = runtimeFlavor == RuntimeFlavor.Clr ? "net461" : "netcoreapp2.1",
ApplicationType = applicationType,
ANCMVersion = ancmVersion
}; };
using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory)) using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory))
@ -107,7 +87,3 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
} }
#elif NET461
#else
#error Target frameworks need to be updated
#endif

View File

@ -1,6 +1,5 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if NETCOREAPP2_1
using System; using System;
using System.IO; using System.IO;
@ -8,6 +7,7 @@ using System.Net.Http;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting; using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing; using Microsoft.Extensions.Logging.Testing;
using Xunit; using Xunit;
@ -25,42 +25,28 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
} }
[Theory] public static TestMatrix TestVariants
[InlineData(ANCMVersion.AspNetCoreModule)] => TestMatrix.ForServers(ServerType.IISExpress)
[InlineData(ANCMVersion.AspNetCoreModuleV2)] .WithTfms(Tfm.NetCoreApp22, Tfm.Net461)
public Task Https_HelloWorld_CLR_X64(ANCMVersion ancmVersion) .WithAllAncmVersions();
{
return HttpsHelloWorld(RuntimeFlavor.Clr, ApplicationType.Portable, port: 44396, ancmVersion);
}
[Theory] [ConditionalTheory]
[InlineData(ANCMVersion.AspNetCoreModule)] [MemberData(nameof(TestVariants))]
[InlineData(ANCMVersion.AspNetCoreModuleV2)] public async Task HttpsHelloWorld(TestVariant variant)
public Task Https_HelloWorld_CoreCLR_X64_Portable(ANCMVersion ancmVersion)
{ {
return HttpsHelloWorld(RuntimeFlavor.CoreClr, ApplicationType.Portable, port: 44394, ancmVersion); var applicationBaseUrl = $"https://localhost:44394/";
} var testName = $"HttpsHelloWorld_{variant.Tfm}";
private async Task HttpsHelloWorld(RuntimeFlavor runtimeFlavor, ApplicationType applicationType, int port, ANCMVersion ancmVersion)
{
var serverType = ServerType.IISExpress;
var architecture = RuntimeArchitecture.x64;
var applicationBaseUrl = $"https://localhost:{port}/";
var testName = $"HttpsHelloWorld_{runtimeFlavor}";
using (StartLog(out var loggerFactory, testName)) using (StartLog(out var loggerFactory, testName))
{ {
var logger = loggerFactory.CreateLogger("HttpsHelloWorldTest"); var logger = loggerFactory.CreateLogger("HttpsHelloWorldTest");
var deploymentParameters = new DeploymentParameters(Helpers.GetOutOfProcessTestSitesPath(), serverType, runtimeFlavor, architecture) var deploymentParameters = new DeploymentParameters(variant)
{ {
ApplicationPath = Helpers.GetOutOfProcessTestSitesPath(),
ApplicationBaseUriHint = applicationBaseUrl, ApplicationBaseUriHint = applicationBaseUrl,
EnvironmentName = "HttpsHelloWorld", // Will pick the Start class named 'StartupHttpsHelloWorld', EnvironmentName = "HttpsHelloWorld", // Will pick the Start class named 'StartupHttpsHelloWorld',
ServerConfigTemplateContent = (serverType == ServerType.IISExpress) ? File.ReadAllText("AppHostConfig/Https.config") : null, ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Https.config"),
SiteName = "HttpsTestSite", // This is configured in the Https.config SiteName = "HttpsTestSite", // This is configured in the Https.config
TargetFramework = runtimeFlavor == RuntimeFlavor.Clr ? "net461" : "netcoreapp2.1",
ApplicationType = applicationType,
ANCMVersion = ancmVersion
}; };
using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory)) using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory))
@ -93,61 +79,37 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
[Theory] [ConditionalTheory]
[InlineData(ANCMVersion.AspNetCoreModule)] [MemberData(nameof(TestVariants))]
[InlineData(ANCMVersion.AspNetCoreModuleV2)] public Task HttpsHelloWorld_NoClientCert(TestVariant variant)
public Task Https_HelloWorld_NoClientCert_CoreCLR_X64_Portable(ANCMVersion ancmVersion)
{ {
return HttpsHelloWorldCerts(RuntimeFlavor.CoreClr, ApplicationType.Portable, port: 44397, sendClientCert: false, ancmVersion); return HttpsHelloWorldCerts(variant, port: 44397, sendClientCert: false);
}
[Theory]
[InlineData(ANCMVersion.AspNetCoreModule)]
[InlineData(ANCMVersion.AspNetCoreModuleV2)]
public Task Https_HelloWorld_NoClientCert_Clr_X64(ANCMVersion ancmVersion)
{
return HttpsHelloWorldCerts(RuntimeFlavor.Clr, ApplicationType.Portable, port: 44398, sendClientCert: false, ancmVersion);
} }
#pragma warning disable xUnit1004 // Test methods should not be skipped #pragma warning disable xUnit1004 // Test methods should not be skipped
[Theory(Skip = "Manual test only, selecting a client cert is non-determanistic on different machines.")] [ConditionalTheory(Skip = "Manual test only, selecting a client cert is non-determanistic on different machines.")]
[InlineData(ANCMVersion.AspNetCoreModule)] [MemberData(nameof(TestVariants))]
[InlineData(ANCMVersion.AspNetCoreModuleV2)]
#pragma warning restore xUnit1004 // Test methods should not be skipped #pragma warning restore xUnit1004 // Test methods should not be skipped
public Task Https_HelloWorld_ClientCert_Clr_X64(ANCMVersion ancmVersion) public Task HttpsHelloWorld_ClientCert(TestVariant variant)
{ {
return HttpsHelloWorldCerts(RuntimeFlavor.Clr, ApplicationType.Portable, port: 44301, sendClientCert: true, ancmVersion); return HttpsHelloWorldCerts(variant, port: 44301, sendClientCert: true);
} }
#pragma warning disable xUnit1004 // Test methods should not be skipped private async Task HttpsHelloWorldCerts(TestVariant variant, int port, bool sendClientCert)
[Theory(Skip = "Manual test only, selecting a client cert is non-determanistic on different machines.")]
[InlineData(ANCMVersion.AspNetCoreModule)]
[InlineData(ANCMVersion.AspNetCoreModuleV2)]
#pragma warning restore xUnit1004 // Test methods should not be skipped
public Task Https_HelloWorld_ClientCert_CoreCLR_X64_Portable(ANCMVersion ancmVersion)
{ {
return HttpsHelloWorldCerts(RuntimeFlavor.CoreClr, ApplicationType.Portable, port: 44302, sendClientCert: true, ancmVersion);
}
private async Task HttpsHelloWorldCerts(RuntimeFlavor runtimeFlavor, ApplicationType applicationType, int port, bool sendClientCert, ANCMVersion ancmVersion)
{
var serverType = ServerType.IISExpress;
var architecture = RuntimeArchitecture.x64;
var applicationBaseUrl = $"https://localhost:{port}/"; var applicationBaseUrl = $"https://localhost:{port}/";
var testName = $"HttpsHelloWorldCerts_{runtimeFlavor}"; var testName = $"HttpsHelloWorldCerts_{variant.Tfm}_{sendClientCert}";
using (StartLog(out var loggerFactory, testName)) using (StartLog(out var loggerFactory, testName))
{ {
var logger = loggerFactory.CreateLogger("HttpsHelloWorldTest"); var logger = loggerFactory.CreateLogger("HttpsHelloWorldTest");
var deploymentParameters = new DeploymentParameters(Helpers.GetOutOfProcessTestSitesPath(), serverType, runtimeFlavor, architecture) var deploymentParameters = new DeploymentParameters(variant)
{ {
ApplicationPath = Helpers.GetOutOfProcessTestSitesPath(),
ApplicationBaseUriHint = applicationBaseUrl, ApplicationBaseUriHint = applicationBaseUrl,
EnvironmentName = "HttpsHelloWorld", // Will pick the Start class named 'StartupHttpsHelloWorld', EnvironmentName = "HttpsHelloWorld", // Will pick the Start class named 'StartupHttpsHelloWorld',
ServerConfigTemplateContent = (serverType == ServerType.IISExpress) ? File.ReadAllText("AppHostConfig/Https.config") : null, ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Https.config"),
SiteName = "HttpsTestSite", // This is configured in the Https.config SiteName = "HttpsTestSite", // This is configured in the Https.config
TargetFramework = runtimeFlavor == RuntimeFlavor.Clr ? "net461" : "netcoreapp2.1",
ApplicationType = applicationType,
ANCMVersion = ancmVersion
}; };
using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory)) using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory))
@ -230,7 +192,3 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
} }
#elif NET461
#else
#error Target frameworks need to be updated
#endif

View File

@ -1,16 +1,13 @@
// Copyright (c) .NET Foundation. All rights reserved. // Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
#if NET461
// Per https://github.com/dotnet/corefx/issues/5045, HttpClientHandler.UseDefaultCredentials does not work correctly in CoreFx.
// We'll require the desktop HttpClient to run these tests.
using System; using System;
using System.IO; using System.IO;
using System.Net; using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.IntegrationTesting; using Microsoft.AspNetCore.Server.IntegrationTesting;
using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing; using Microsoft.Extensions.Logging.Testing;
using Xunit; using Xunit;
@ -25,41 +22,27 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
} }
[Theory] public static TestMatrix TestVariants
[InlineData(ANCMVersion.AspNetCoreModule)] => TestMatrix.ForServers(ServerType.IISExpress)
[InlineData(ANCMVersion.AspNetCoreModuleV2)] .WithTfms(Tfm.NetCoreApp22, Tfm.Net461)
public Task NtlmAuthentication_Clr_X64(ANCMVersion ancmVersion) .WithAllAncmVersions();
{
return NtlmAuthentication(RuntimeFlavor.Clr, ApplicationType.Portable, port: 5051, ancmVersion);
}
[Theory] [ConditionalTheory]
[InlineData(ANCMVersion.AspNetCoreModule)] [MemberData(nameof(TestVariants))]
[InlineData(ANCMVersion.AspNetCoreModuleV2)] public async Task NtlmAuthentication(TestVariant variant)
public Task NtlmAuthentication_CoreClr_X64_Portable(ANCMVersion ancmVersion)
{ {
return NtlmAuthentication(RuntimeFlavor.CoreClr, ApplicationType.Portable, port: 5052, ancmVersion); var testName = $"NtlmAuthentication_{variant.Tfm}_{variant.AncmVersion}";
}
private async Task NtlmAuthentication(RuntimeFlavor runtimeFlavor, ApplicationType applicationType, int port, ANCMVersion ancmVersion)
{
var serverType = ServerType.IISExpress;
var architecture = RuntimeArchitecture.x64;
var testName = $"NtlmAuthentication_{runtimeFlavor}";
using (StartLog(out var loggerFactory, testName)) using (StartLog(out var loggerFactory, testName))
{ {
var logger = loggerFactory.CreateLogger("NtlmAuthenticationTest"); var logger = loggerFactory.CreateLogger("NtlmAuthenticationTest");
var deploymentParameters = new DeploymentParameters(Helpers.GetOutOfProcessTestSitesPath(), serverType, runtimeFlavor, architecture) var deploymentParameters = new DeploymentParameters(variant)
{ {
ApplicationBaseUriHint = $"http://localhost:{port}", ApplicationPath = Helpers.GetOutOfProcessTestSitesPath(),
ApplicationBaseUriHint = $"http://localhost:5052",
EnvironmentName = "NtlmAuthentication", // Will pick the Start class named 'StartupNtlmAuthentication' EnvironmentName = "NtlmAuthentication", // Will pick the Start class named 'StartupNtlmAuthentication'
ServerConfigTemplateContent = (serverType == ServerType.IISExpress) ? File.ReadAllText("AppHostConfig/NtlmAuthentation.config") : null, ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/NtlmAuthentation.config"),
SiteName = "NtlmAuthenticationTestSite", // This is configured in the NtlmAuthentication.config SiteName = "NtlmAuthenticationTestSite", // This is configured in the NtlmAuthentication.config
TargetFramework = runtimeFlavor == RuntimeFlavor.Clr ? "net461" : "netcoreapp2.1",
ApplicationType = applicationType,
ANCMVersion = ancmVersion,
}; };
using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory)) using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory))
@ -126,7 +109,3 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
} }
} }
#elif NETCOREAPP2_1
#else
#error Target frameworks need to be updated
#endif

View File

@ -4,5 +4,4 @@
// All functional tests in this project require a version of IIS express with an updated schema // All functional tests in this project require a version of IIS express with an updated schema
using Xunit; using Xunit;
[assembly: Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests.IISExpressSupportsInProcessHosting]
[assembly: CollectionBehavior(DisableTestParallelization = true)] [assembly: CollectionBehavior(DisableTestParallelization = true)]

View File

@ -23,67 +23,52 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
} }
[Fact] [Fact]
public Task UpgradeFeatureDetectionDisabled_InProcess_IISExpress_CoreClr_x64_Portable() public Task UpgradeFeatureDetectionDisabled_InProcess_IISExpress()
{ {
return UpgradeFeatureDetectionDeployer(RuntimeFlavor.CoreClr, return UpgradeFeatureDetectionDeployer("AppHostConfig/WebsocketsNotSupported.config",
ApplicationType.Portable,
"AppHostConfig/WebsocketsNotSupported.config",
Helpers.GetInProcessTestSitesPath(), Helpers.GetInProcessTestSitesPath(),
"Disabled"); "Disabled");
} }
[Fact] [Fact]
public Task UpgradeFeatureDetectionEnabled_InProcess_IISExpress_CoreClr_x64_Portable() public Task UpgradeFeatureDetectionEnabled_InProcess_IISExpress()
{ {
return UpgradeFeatureDetectionDeployer(RuntimeFlavor.CoreClr, return UpgradeFeatureDetectionDeployer("AppHostConfig/Http.config",
ApplicationType.Portable,
"AppHostConfig/Http.config",
Helpers.GetInProcessTestSitesPath(), Helpers.GetInProcessTestSitesPath(),
_isWebsocketsSupported); _isWebsocketsSupported);
} }
[Fact] [Fact]
public Task UpgradeFeatureDetectionDisabled_OutOfProcess_IISExpress_CoreClr_x64_Portable() public Task UpgradeFeatureDetectionDisabled_OutOfProcess_IISExpress()
{ {
return UpgradeFeatureDetectionDeployer(RuntimeFlavor.CoreClr, return UpgradeFeatureDetectionDeployer("AppHostConfig/WebsocketsNotSupported.config",
ApplicationType.Portable,
"AppHostConfig/WebsocketsNotSupported.config",
Helpers.GetOutOfProcessTestSitesPath(), Helpers.GetOutOfProcessTestSitesPath(),
"Disabled"); "Disabled");
} }
// This test is failing on win7 and win2008
[Fact] [Fact]
public Task UpgradeFeatureDetectionEnabled_OutOfProcess_IISExpress_CoreClr_x64_Portable() public Task UpgradeFeatureDetectionEnabled_OutOfProcess_IISExpress()
{ {
return UpgradeFeatureDetectionDeployer(RuntimeFlavor.CoreClr, return UpgradeFeatureDetectionDeployer("AppHostConfig/Http.config",
ApplicationType.Portable,
"AppHostConfig/Http.config",
Helpers.GetOutOfProcessTestSitesPath(), Helpers.GetOutOfProcessTestSitesPath(),
_isWebsocketsSupported); _isWebsocketsSupported);
} }
private async Task UpgradeFeatureDetectionDeployer(RuntimeFlavor runtimeFlavor, private async Task UpgradeFeatureDetectionDeployer(string configPath, string sitePath, string expected)
ApplicationType applicationType,
string configPath,
string sitePath,
string expected)
{ {
var serverType = ServerType.IISExpress; var testName = $"HelloWorld";
var architecture = RuntimeArchitecture.x64;
var testName = $"HelloWorld_{runtimeFlavor}";
using (StartLog(out var loggerFactory, testName)) using (StartLog(out var loggerFactory, testName))
{ {
var logger = loggerFactory.CreateLogger("HelloWorldTest"); var logger = loggerFactory.CreateLogger("HelloWorldTest");
var deploymentParameters = new DeploymentParameters(sitePath, serverType, runtimeFlavor, architecture) var deploymentParameters = new DeploymentParameters(sitePath, ServerType.IISExpress, RuntimeFlavor.CoreClr, RuntimeArchitecture.x64)
{ {
EnvironmentName = "UpgradeFeatureDetection", // Will pick the Start class named 'StartupHelloWorld', EnvironmentName = "UpgradeFeatureDetection", // Will pick the Start class named 'StartupHelloWorld',
ServerConfigTemplateContent = (serverType == ServerType.IISExpress) ? File.ReadAllText(configPath) : null, ServerConfigTemplateContent = File.ReadAllText(configPath),
SiteName = "HttpTestSite", // This is configured in the Http.config SiteName = "HttpTestSite", // This is configured in the Http.config
TargetFramework = "netcoreapp2.1", TargetFramework = Tfm.NetCoreApp22,
ApplicationType = applicationType, ApplicationType = ApplicationType.Portable,
ANCMVersion = ANCMVersion.AspNetCoreModuleV2 AncmVersion = AncmVersion.AspNetCoreModuleV2
}; };
using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory)) using (var deployer = ApplicationDeployerFactory.Create(deploymentParameters, loggerFactory))

View File

@ -1,62 +0,0 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Xml.Linq;
using Microsoft.AspNetCore.Testing.xunit;
namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Assembly | AttributeTargets.Class)]
public sealed class IISExpressSupportsInProcessHostingAttribute : Attribute, ITestCondition
{
public bool IsMet => AncmSchema.SupportsInProcessHosting;
public string SkipReason => AncmSchema.SkipReason;
private class AncmSchema
{
public static bool SupportsInProcessHosting { get; }
public static string SkipReason { get; } = "IIS Express must be upgraded to support in-process hosting.";
static AncmSchema()
{
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
SkipReason = "IIS Express tests can only be run on Windows";
return;
}
var ancmConfigPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
"IIS Express", "config", "schema", "aspnetcore_schema.xml");
if (!File.Exists(ancmConfigPath))
{
SkipReason = "IIS Express is not installed.";
return;
}
XDocument ancmConfig;
try
{
ancmConfig = XDocument.Load(ancmConfigPath);
}
catch
{
SkipReason = "Could not read ANCM schema configuration";
return;
}
SupportsInProcessHosting = ancmConfig
.Root
.Descendants("attribute")
.Any(n => "hostingModel".Equals(n.Attribute("name")?.Value, StringComparison.Ordinal));
}
}
}
}

View File

@ -13,7 +13,7 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
public class IISTestSiteFixture : IDisposable public class IISTestSiteFixture : IDisposable
{ {
private readonly IApplicationDeployer _deployer; private readonly ApplicationDeployer _deployer;
public IISTestSiteFixture() public IISTestSiteFixture()
{ {
@ -26,9 +26,10 @@ namespace Microsoft.AspNetCore.Server.IISIntegration.FunctionalTests
{ {
ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Http.config"), ServerConfigTemplateContent = File.ReadAllText("AppHostConfig/Http.config"),
SiteName = "HttpTestSite", SiteName = "HttpTestSite",
TargetFramework = "netcoreapp2.1", TargetFramework = Tfm.NetCoreApp22,
ApplicationType = ApplicationType.Portable, ApplicationType = ApplicationType.Portable,
ANCMVersion = ANCMVersion.AspNetCoreModuleV2, AncmVersion = AncmVersion.AspNetCoreModuleV2,
HostingModel = HostingModel.InProcess,
}; };
_deployer = ApplicationDeployerFactory.Create(deploymentParameters, logging.CreateLoggerFactory(null, nameof(IISTestSiteFixture))); _deployer = ApplicationDeployerFactory.Create(deploymentParameters, logging.CreateLoggerFactory(null, nameof(IISTestSiteFixture)));