public override async Task RunAsync() { var options = ApplicationOptions.Current; TcpTextWriter writer = null; if (!string.IsNullOrEmpty(options.HostName)) { try { writer = new TcpTextWriter(options.HostName, options.HostPort); } catch (Exception ex) { Console.WriteLine("Network error: Cannot connect to {0}:{1}: {2}. Continuing on console.", options.HostName, options.HostPort, ex); writer = null; // will default to the console } } // we generate the logs in two different ways depending if the generate xml flag was // provided. If it was, we will write the xml file to the tcp writer if present, else // we will write the normal console output using the LogWriter var logger = (writer == null || options.EnableXml) ? new LogWriter(Device) : new LogWriter(Device, writer); logger.MinimumLogLevel = MinimumLogLevel.Info; // if we have ignore files, ignore those tests var runner = await InternalRunAsync(logger); TestRunner.Jargon jargon = Core.TestRunner.Jargon.NUnitV3; switch (options.XmlVersion) { case XmlVersion.NUnitV2: jargon = Core.TestRunner.Jargon.NUnitV2; break; case XmlVersion.NUnitV3: default: // nunitv3 gives os the most amount of possible details jargon = Core.TestRunner.Jargon.NUnitV3; break; } if (options.EnableXml) { runner.WriteResultsToFile(writer ?? Console.Out, jargon); logger.Info("Xml file was written to the tcp listener."); } else { string resultsFilePath = runner.WriteResultsToFile(jargon); logger.Info($"Xml result can be found {resultsFilePath}"); } logger.Info($"Tests run: {runner.TotalTests} Passed: {runner.PassedTests} Inconclusive: {runner.InconclusiveTests} Failed: {runner.FailedTests} Ignored: {runner.FilteredTests}"); if (options.TerminateAfterExecution) { TerminateWithSuccess(); } }
public override async Task RunAsync() { var options = ApplicationOptions.Current; // we generate the logs in two different ways depending if the generate xml flag was // provided. If it was, we will write the xml file to the tcp writer if present, else // we will write the normal console output using the LogWriter var logger = (Logger == null || options.EnableXml) ? new LogWriter(Device) : new LogWriter(Device, Logger); logger.MinimumLogLevel = MinimumLogLevel.Info; var testAssemblies = GetTestAssemblies(); var runner = await InternalRunAsync(logger); TestRunner.Jargon jargon = Core.TestRunner.Jargon.NUnitV3; switch (options.XmlVersion) { case XmlVersion.NUnitV2: jargon = Core.TestRunner.Jargon.NUnitV2; break; case XmlVersion.NUnitV3: default: // nunitv3 gives os the most amount of possible details jargon = Core.TestRunner.Jargon.NUnitV3; break; } if (options.EnableXml) { if (TestsResultsFinalPath == null) { throw new InvalidOperationException("Tests results final path cannot be null."); } using (var stream = File.Create(TestsResultsFinalPath)) using (var writer = new StreamWriter(stream)) { runner.WriteResultsToFile(writer, jargon); logger.Info($"Xml file was written to {TestsResultsFinalPath}."); } } else { string resultsFilePath = runner.WriteResultsToFile(jargon); logger.Info($"Xml result can be found {resultsFilePath}"); } logger.Info($"Tests run: {runner.TotalTests} Passed: {runner.PassedTests} Inconclusive: {runner.InconclusiveTests} Failed: {runner.FailedTests} Ignored: {runner.FilteredTests}"); if (options.TerminateAfterExecution) { TerminateWithSuccess(); } }