@@ -227,21 +227,21 @@ void DiscoverTests<TVisitor>(
227
227
{
228
228
RemotingUtility . CleanUpRegisteredChannels ( ) ;
229
229
230
- var internalDiagnosticsMessageSink = DiagnosticMessageSink . ForInternalDiagnostics ( logger , runSettings . InternalDiagnosticMessages ?? false ) ;
230
+ var internalDiagnosticsSinkLocal = DiagnosticMessageSink . ForInternalDiagnostics ( logger , runSettings . InternalDiagnosticMessages ?? false ) ;
231
+ using var _ = AssemblyHelper . SubscribeResolveForAssembly ( typeof ( VsTestRunner ) , MessageSinkAdapter . Wrap ( internalDiagnosticsSinkLocal ) ) ;
231
232
232
- using var _ = AssemblyHelper . SubscribeResolveForAssembly ( typeof ( VsTestRunner ) , MessageSinkAdapter . Wrap ( internalDiagnosticsMessageSink ) ) ;
233
233
foreach ( var assemblyFileNameCanBeWithoutAbsolutePath in sources )
234
234
{
235
235
var assembly = new XunitProjectAssembly { AssemblyFilename = GetAssemblyFileName ( assemblyFileNameCanBeWithoutAbsolutePath ) } ;
236
236
runSettings . CopyTo ( assembly . Configuration ) ;
237
237
238
238
var fileName = Path . GetFileNameWithoutExtension ( assembly . AssemblyFilename ) ;
239
239
var shadowCopy = assembly . Configuration . ShadowCopyOrDefault ;
240
- var diagnosticSink = DiagnosticMessageSink . ForDiagnostics ( logger , fileName , assembly . Configuration . DiagnosticMessagesOrDefault ) ;
240
+ var diagnosticsSinkLocal = DiagnosticMessageSink . ForDiagnostics ( logger , fileName , assembly . Configuration . DiagnosticMessagesOrDefault ) ;
241
241
var appDomain = assembly . Configuration . AppDomain ?? AppDomainDefaultBehavior ;
242
242
243
- using var sourceInformationProvider = new VisualStudioSourceInformationProvider ( assembly . AssemblyFilename , diagnosticSink ) ;
244
- using var controller = new XunitFrontController ( appDomain , assembly . AssemblyFilename , shadowCopy : shadowCopy , sourceInformationProvider : sourceInformationProvider , diagnosticMessageSink : MessageSinkAdapter . Wrap ( diagnosticSink ) ) ;
243
+ using var sourceInformationProvider = new VisualStudioSourceInformationProvider ( assembly . AssemblyFilename , internalDiagnosticsSinkLocal ) ;
244
+ using var controller = new XunitFrontController ( appDomain , assembly . AssemblyFilename , shadowCopy : shadowCopy , sourceInformationProvider : sourceInformationProvider , diagnosticMessageSink : MessageSinkAdapter . Wrap ( diagnosticsSinkLocal ) ) ;
245
245
if ( ! DiscoverTestsInSource ( controller , logger , testPlatformContext , runSettings , visitorFactory , visitComplete , assembly ) )
246
246
break ;
247
247
}
@@ -384,18 +384,16 @@ void RunTests(
384
384
var parallelizeAssemblies = runInfos . All ( runInfo => runInfo . Assembly . Configuration . ParallelizeAssemblyOrDefault ) ;
385
385
var reporter = GetRunnerReporter ( logger , runSettings , runInfos . Select ( ari => ari . Assembly . AssemblyFilename ) . ToList ( ) ) ;
386
386
using var reporterMessageHandler = MessageSinkWithTypesAdapter . Wrap ( reporter . CreateMessageHandler ( new VisualStudioRunnerLogger ( logger ) ) ) ;
387
- using var internalDiagnosticsMessageSink = DiagnosticMessageSink . ForInternalDiagnostics ( logger , runSettings . InternalDiagnosticMessages ?? false ) ;
387
+ using var internalDiagnosticsSinkLocal = DiagnosticMessageSink . ForInternalDiagnostics ( logger , runSettings . InternalDiagnosticMessages ?? false ) ;
388
+ using var _ = AssemblyHelper . SubscribeResolveForAssembly ( typeof ( VsTestRunner ) , MessageSinkAdapter . Wrap ( internalDiagnosticsSinkLocal ) ) ;
388
389
389
- using ( AssemblyHelper . SubscribeResolveForAssembly ( typeof ( VsTestRunner ) , MessageSinkAdapter . Wrap ( internalDiagnosticsMessageSink ) ) )
390
- {
391
- if ( parallelizeAssemblies )
392
- runInfos
393
- . Select ( runInfo => RunTestsInAssemblyAsync ( runContext , frameworkHandle , logger , testPlatformContext , runSettings , reporterMessageHandler , runInfo ) )
394
- . ToList ( )
395
- . ForEach ( @event => @event . WaitOne ( ) ) ;
396
- else
397
- runInfos . ForEach ( runInfo => RunTestsInAssembly ( runContext , frameworkHandle , logger , testPlatformContext , runSettings , reporterMessageHandler , runInfo ) ) ;
398
- }
390
+ if ( parallelizeAssemblies )
391
+ runInfos
392
+ . Select ( runInfo => RunTestsInAssemblyAsync ( runContext , frameworkHandle , logger , testPlatformContext , runSettings , reporterMessageHandler , runInfo ) )
393
+ . ToList ( )
394
+ . ForEach ( @event => @event . WaitOne ( ) ) ;
395
+ else
396
+ runInfos . ForEach ( runInfo => RunTestsInAssembly ( runContext , frameworkHandle , logger , testPlatformContext , runSettings , reporterMessageHandler , runInfo ) ) ;
399
397
}
400
398
catch ( Exception ex )
401
399
{
@@ -426,10 +424,12 @@ void RunTestsInAssembly(
426
424
var appDomain = configuration . AppDomain ?? AppDomainDefaultBehavior ;
427
425
var longRunningSeconds = configuration . LongRunningTestSecondsOrDefault ;
428
426
429
- var diagnosticSink = DiagnosticMessageSink . ForDiagnostics ( logger , assemblyDisplayName , runInfo . Assembly . Configuration . DiagnosticMessagesOrDefault ) ;
430
- var diagnosticMessageSink = MessageSinkAdapter . Wrap ( diagnosticSink ) ;
431
- using var sourceInformationProvider = new VisualStudioSourceInformationProvider ( assemblyFileName , diagnosticSink ) ;
432
- using var controller = new XunitFrontController ( appDomain , assemblyFileName , shadowCopy : shadowCopy , sourceInformationProvider : sourceInformationProvider , diagnosticMessageSink : diagnosticMessageSink ) ;
427
+ var diagnosticsSinkLocal = DiagnosticMessageSink . ForDiagnostics ( logger , assemblyDisplayName , runInfo . Assembly . Configuration . DiagnosticMessagesOrDefault ) ;
428
+ var diagnosticsSinkRemote = MessageSinkAdapter . Wrap ( diagnosticsSinkLocal ) ;
429
+ var internalDiagnosticsSinkLocal = DiagnosticMessageSink . ForInternalDiagnostics ( logger , runInfo . Assembly . Configuration . InternalDiagnosticMessagesOrDefault ) ;
430
+
431
+ using var sourceInformationProvider = new VisualStudioSourceInformationProvider ( assemblyFileName , internalDiagnosticsSinkLocal ) ;
432
+ using var controller = new XunitFrontController ( appDomain , assemblyFileName , shadowCopy : shadowCopy , sourceInformationProvider : sourceInformationProvider , diagnosticMessageSink : diagnosticsSinkRemote ) ;
433
433
var testCasesMap = new Dictionary < string , TestCase > ( ) ;
434
434
var testCases = new List < ITestCase > ( ) ;
435
435
if ( runInfo . TestCases is null || ! runInfo . TestCases . Any ( ) )
@@ -543,7 +543,7 @@ void RunTestsInAssembly(
543
543
using var vsExecutionSink = new VsExecutionSink ( reporterMessageHandler , frameworkHandle , logger , testCasesMap , ( ) => cancelled ) ;
544
544
IExecutionSink resultsSink = vsExecutionSink ;
545
545
if ( longRunningSeconds > 0 )
546
- resultsSink = new DelegatingLongRunningTestDetectionSink ( resultsSink , TimeSpan . FromSeconds ( longRunningSeconds ) , diagnosticSink ) ;
546
+ resultsSink = new DelegatingLongRunningTestDetectionSink ( resultsSink , TimeSpan . FromSeconds ( longRunningSeconds ) , diagnosticsSinkLocal ) ;
547
547
if ( configuration . FailSkipsOrDefault )
548
548
resultsSink = new DelegatingFailSkipSink ( resultsSink ) ;
549
549
0 commit comments