Пример #1
0
 public TestResultBuilder(TestContext testContext, IVsTestTestProvider rootTest)
 {
     this.testContext  = testContext;
     this.rootTest     = rootTest;
     runningSingleTest = rootTest is VsTestUnitTest;
     TestResult        = UnitTestResult.CreateSuccess();
 }
Пример #2
0
 public RunOrDebugJob(TestContext testContext, IVsTestTestProvider rootTest)
 {
     TestContext       = testContext;
     TestResultBuilder = new TestResultBuilder(testContext, rootTest);
     Project           = rootTest.Project;
     TaskSource        = TestResultBuilder.TaskSource;
 }
        public async Task <UnitTestResult> RunTest(
            TestContext testContext,
            IVsTestTestProvider testProvider)
        {
            var result = await VsTestRunAdapter.Instance.RunTests(this, testContext, testProvider);

            Status = TestStatus.Ready;
            return(result);
        }
Пример #4
0
        void CreateTestResultBuilder(IVsTestTestProvider testProvider)
        {
            var executionContext = new ExecutionContext((IExecutionHandler)null, null, null);

            monitor = new TestProgressMonitor();
            context = new TestContext(monitor, null, executionContext, DateTime.Now);

            builder = new TestResultBuilder(context, testProvider);
        }
Пример #5
0
        public async Task <UnitTestResult> RunTests(
            UnitTest test,
            TestContext testContext,
            IVsTestTestProvider testProvider)
        {
            await Start();

            try {
                runJobInProgress = new RunOrDebugJob(testContext, testProvider);
                testContext.Monitor.CancellationToken.Register(CancelTestRun);
                var tests = testProvider.GetTests();
                SendExtensionList(GetTestAdapters(runJobInProgress.Project).Split(';'));
                if (testContext.ExecutionContext.ExecutionHandler != null)
                {
                    if (tests == null)
                    {
                        GetProcessStartInfo(testProvider.Project);
                    }
                    else
                    {
                        GetProcessStartInfo(testProvider.Project, tests);
                    }
                }
                else
                {
                    if (tests == null)
                    {
                        RunTests(testProvider.Project);
                    }
                    else
                    {
                        RunTests(testProvider.Project, tests);
                    }
                }
                return(await runJobInProgress.TaskSource.Task);
            } catch (OperationCanceledException) {
                return(runJobInProgress.TestResultBuilder.TestResult);
            } catch (Exception ex) {
                testContext.Monitor.ReportRuntimeError(
                    GettextCatalog.GetString("Failed to run tests."),
                    ex);

                if (runJobInProgress.TestResultBuilder != null)
                {
                    runJobInProgress.TestResultBuilder.CreateFailure(ex);
                }
                return(runJobInProgress.TestResultBuilder.TestResult);
            }
        }