void HandleTestAssemblyFinished(MessageHandlerArgs <ITestAssemblyFinished> args) { lock (clientLock) { assembliesInFlight--; if (assembliesInFlight == 0) { // Drain the queue client.WaitOne(CancellationToken.None); client.Dispose(); client = null; } } }
void HandleTestAssemblyStarting(MessageHandlerArgs <ITestAssemblyStarting> args) { lock (clientLock) { assembliesInFlight++; // Look for the TFM attrib to disambiguate var attrib = args.Message.TestAssembly.Assembly.GetCustomAttributes("System.Runtime.Versioning.TargetFrameworkAttribute").FirstOrDefault(); var assemblyFileName = Path.GetFileName(args.Message.TestAssembly.Assembly.AssemblyPath); if (attrib?.GetConstructorArguments().FirstOrDefault() is string arg) { assemblyFileName = $"{assemblyFileName} ({arg})"; } assemblyNames[args.Message.TestAssembly.Assembly.Name] = assemblyFileName; if (client == null) { client = new VstsClient(Logger, baseUri, accessToken, buildId); } } }