1515#if NETCOREAPP
1616using System . Text ;
1717using Internal . Microsoft . Extensions . DependencyModel ;
18- using InternalRuntimeEnvironment = Internal . Microsoft . DotNet . PlatformAbstractions . RuntimeEnvironment ;
1918#endif
2019
2120namespace Xunit . Runner . VisualStudio
@@ -251,9 +250,13 @@ void DiscoverTests<TVisitor>(
251250 var fileName = Path . GetFileNameWithoutExtension ( assemblyFileName ) ;
252251 var shadowCopy = configuration . ShadowCopyOrDefault ;
253252 var diagnosticSink = DiagnosticMessageSink . ForDiagnostics ( logger , fileName , configuration . DiagnosticMessagesOrDefault ) ;
253+ var appDomain = configuration . AppDomain ?? AppDomainDefaultBehavior ;
254254
255- using var framework = new XunitFrontController ( AppDomainDefaultBehavior , assemblyFileName , shadowCopy : shadowCopy , diagnosticMessageSink : MessageSinkAdapter . Wrap ( diagnosticSink ) ) ;
256- if ( ! DiscoverTestsInSource ( framework , logger , testPlatformContext , runSettings , visitorFactory , visitComplete , assemblyFileName , shadowCopy , configuration ) )
255+ if ( runSettings . DisableAppDomain )
256+ appDomain = AppDomainSupport . Denied ;
257+
258+ using var framework = new XunitFrontController ( appDomain , assemblyFileName , shadowCopy : shadowCopy , diagnosticMessageSink : MessageSinkAdapter . Wrap ( diagnosticSink ) ) ;
259+ if ( ! DiscoverTestsInSource ( framework , logger , testPlatformContext , runSettings , visitorFactory , visitComplete , assemblyFileName , shadowCopy , configuration , appDomain ) )
257260 break ;
258261 }
259262 }
@@ -272,7 +275,8 @@ bool DiscoverTestsInSource<TVisitor>(
272275 Action < string , ITestFrameworkDiscoverer , ITestFrameworkDiscoveryOptions , TVisitor > ? visitComplete ,
273276 string assemblyFileName ,
274277 bool shadowCopy ,
275- TestAssemblyConfiguration configuration )
278+ TestAssemblyConfiguration configuration ,
279+ AppDomainSupport appDomain )
276280 where TVisitor : IVsDiscoverySink , IDisposable
277281 {
278282 if ( cancelled )
@@ -297,7 +301,7 @@ bool DiscoverTestsInSource<TVisitor>(
297301
298302 using var visitor = visitorFactory ( assemblyFileName , framework , discoveryOptions ) ;
299303 var totalTests = 0 ;
300- var usingAppDomains = framework . CanUseAppDomains && AppDomainDefaultBehavior != AppDomainSupport . Denied ;
304+ var usingAppDomains = framework . CanUseAppDomains && appDomain != AppDomainSupport . Denied ;
301305 reporterMessageHandler . OnMessage ( new TestAssemblyDiscoveryStarting ( assembly , usingAppDomains , shadowCopy , discoveryOptions ) ) ;
302306
303307 try
@@ -469,7 +473,8 @@ void RunTestsInAssembly(
469473 } ,
470474 assemblyFileName ,
471475 shadowCopy ,
472- configuration
476+ configuration ,
477+ appDomain
473478 ) ;
474479
475480 if ( assemblyDiscoveredInfo == null || assemblyDiscoveredInfo . DiscoveredTestCases == null || ! assemblyDiscoveredInfo . DiscoveredTestCases . Any ( ) )
0 commit comments