Skip to content

Commit 671542c

Browse files
committed
#331: DisableAppDomain switch is not fully respected for Discovery
1 parent 1aa409d commit 671542c

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/xunit.runner.visualstudio/VsTestRunner.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#if NETCOREAPP
1616
using System.Text;
1717
using Internal.Microsoft.Extensions.DependencyModel;
18-
using InternalRuntimeEnvironment = Internal.Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment;
1918
#endif
2019

2120
namespace 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

Comments
 (0)