1111using Microsoft . AspNetCore . Hosting ;
1212using Microsoft . AspNetCore . Hosting . Server ;
1313using Microsoft . AspNetCore . Hosting . Server . Features ;
14+ using Microsoft . AspNetCore . Server . Kestrel . Core ;
1415using Microsoft . AspNetCore . Testing ;
1516using Microsoft . Extensions . DependencyInjection ;
1617using Microsoft . Extensions . Hosting ;
@@ -38,6 +39,7 @@ public class InProcessTestServer<TStartup> : InProcessTestServer
3839 private IHostApplicationLifetime _lifetime ;
3940 private readonly IDisposable _logToken ;
4041 private readonly IDisposable _extraDisposable ;
42+ private readonly Action < KestrelServerOptions > _configureKestrelServerOptions ;
4143
4244 private readonly LogSinkProvider _logSinkProvider ;
4345 private string _url ;
@@ -52,19 +54,20 @@ internal override event Action<LogRecord> ServerLogged
5254
5355 public override string Url => _url ;
5456
55- public static async Task < InProcessTestServer < TStartup > > StartServer ( ILoggerFactory loggerFactory , IDisposable disposable = null )
57+ public static async Task < InProcessTestServer < TStartup > > StartServer ( ILoggerFactory loggerFactory , Action < KestrelServerOptions > configureKestrelServerOptions = null , IDisposable disposable = null )
5658 {
57- var server = new InProcessTestServer < TStartup > ( loggerFactory , disposable ) ;
59+ var server = new InProcessTestServer < TStartup > ( loggerFactory , configureKestrelServerOptions , disposable ) ;
5860 await server . StartServerInner ( ) ;
5961 return server ;
6062 }
6163
62- private InProcessTestServer ( ) : this ( loggerFactory : null , null )
64+ private InProcessTestServer ( ) : this ( loggerFactory : null , null , null )
6365 {
6466 }
6567
66- private InProcessTestServer ( ILoggerFactory loggerFactory , IDisposable disposable )
68+ private InProcessTestServer ( ILoggerFactory loggerFactory , Action < KestrelServerOptions > configureKestrelServerOptions , IDisposable disposable )
6769 {
70+ _configureKestrelServerOptions = configureKestrelServerOptions ;
6871 _extraDisposable = disposable ;
6972 _logSinkProvider = new LogSinkProvider ( ) ;
7073
@@ -99,7 +102,7 @@ private async Task StartServerInner()
99102 . SetMinimumLevel ( LogLevel . Trace )
100103 . AddProvider ( new ForwardingLoggerProvider ( _loggerFactory ) ) )
101104 . UseStartup ( typeof ( TStartup ) )
102- . UseKestrel ( )
105+ . UseKestrel ( o => _configureKestrelServerOptions ? . Invoke ( o ) )
103106 . UseUrls ( url )
104107 . UseContentRoot ( Directory . GetCurrentDirectory ( ) ) ;
105108 } ) . Build ( ) ;
0 commit comments