private static void HandleDesignTimeMessages( ProjectContext projectContext, string testRunner, int port, string configuration) { var reportingChannelFactory = new ReportingChannelFactory(); var adapterChannel = reportingChannelFactory.CreateChannelWithPort(port); try { var assemblyUnderTest = projectContext.GetOutputPaths(configuration).CompilationFiles.Assembly; var messages = new TestMessagesCollection(); using (var dotnetTest = new DotnetTest(messages, assemblyUnderTest)) { var commandFactory = new CommandFactory(); var testRunnerFactory = new TestRunnerFactory(GetCommandName(testRunner), commandFactory); dotnetTest .AddNonSpecificMessageHandlers(messages, adapterChannel) .AddTestDiscoveryMessageHandlers(adapterChannel, reportingChannelFactory, testRunnerFactory) .AddTestRunMessageHandlers(adapterChannel, reportingChannelFactory, testRunnerFactory) .AddTestRunnnersMessageHandlers(adapterChannel); dotnetTest.StartListeningTo(adapterChannel); adapterChannel.Accept(); dotnetTest.StartHandlingMessages(); } } catch (Exception ex) { adapterChannel.SendError(ex); } }