Esempio n. 1
0
        public UnitTestResult RunTest(TestContext testContext, IDnxTestProvider testProvider)
        {
            if (!projectHasTestRunner)
            {
                string message = GettextCatalog.GetString("Project has no testRunner defined.");
                DnxOutputPad.WriteError(message);
                throw new ApplicationException(message);
            }

            using (var runner = new DnxTestRunner(testContext, testProvider)) {
                runner.WorkingDirectory = project.BaseDirectory;
                runner.Run();

                while (!runner.IsCompleted)
                {
                    if (testContext.Monitor.CancellationToken.IsCancellationRequested)
                    {
                        break;
                    }

                    Thread.Sleep(100);
                }
                Status = TestStatus.Ready;
                return(runner.TestResult);
            }
        }
 void OnMessageReceived(Message m)
 {
     try {
         if (m.MessageType == TestMessageTypes.TestSessionConnected)
         {
             testServer.StartTestDiscovery();
         }
         else if (m.MessageType == TestMessageTypes.TestDiscoveryTestFound)
         {
             var val = m.Payload.ToObject <TestDiscovered> ();
             tests.Add(val);
             testFound = true;
             shutdownTimer.Stop();
         }
         else if (m.MessageType == TestMessageTypes.TestDiscoveryCompleted)
         {
             discoveryCompleted = true;
             testServer.TerminateTestSession();
             DnxOutputPad.WriteText(GettextCatalog.GetString("Test discovery completed."));
             OnDiscoveryCompleted();
             Stop();
         }
         else if (m.MessageType == "Error")
         {
             var val = m.Payload.ToObject <Microsoft.DotNet.Tools.Test.ErrorMessage> ();
             DnxOutputPad.WriteError(val.Message);
             OnDiscoveryFailed();
         }
     } catch (Exception ex) {
         LoggingService.LogError("Test loader error", ex);
         DnxOutputPad.WriteError(ex.Message);
         OnDiscoveryFailed();
     }
 }
 void ShutdownTimerElapsed(object sender, ElapsedEventArgs e)
 {
     if (!discoveryCompleted && !testFound)
     {
         DnxOutputPad.WriteError("Timed out waiting for dotnet test to discover any tests.");
         OnDiscoveryFailed();
     }
 }
        void RunDotNetCoreTest(string projectDirectory)
        {
            string arguments = String.Format(@"test --port {0} --parentProcessId {1} --no-build",
                                             testServer.Port,
                                             Process.GetCurrentProcess().Id);

            DnxOutputPad.WriteText(GettextCatalog.GetString("Starting test discovery..."));
            DnxOutputPad.WriteText(String.Format("{0} {1}", DnxServices.ProjectService.CurrentDotNetRuntimePath, arguments));

            dotNetTestOperation = Runtime.ProcessService.StartConsoleProcess(
                DnxServices.ProjectService.CurrentDotNetRuntimePath,
                arguments,
                projectDirectory,
                new DotNetCoreOutputOperationConsole(),
                null,
                DotNetTestProcessExited);
        }
 void OnDotNetTestProcessExitedBeforeCompleted()
 {
     DnxOutputPad.WriteError("dotnet test exited before discovery completed.");
     OnDiscoveryFailed();
 }
 void OnError(Exception ex)
 {
     LoggingService.LogError("Test loader error", ex);
     DnxOutputPad.WriteError(ex.Message);
     OnDiscoveryFailed();
 }