private List <Task> RunTests()
        {
            Debug.Assert(this.isBusy);
            Debug.Assert(this.cancellationTokenSource != null);
            Debug.Assert(this.runningTests == null);

            TestsCompleted  = 0;
            TestsPassed     = 0;
            TestsFailed     = 0;
            TestsSkipped    = 0;
            CurrentRunState = TestState.NotRun;
            Output          = string.Empty;

            this.runningTests = FilteredTestCases.ToImmutableList();

            foreach (var tc in this.runningTests)
            {
                tc.State = TestState.NotRun;
            }

            var runAll          = this.runningTests.Count == this.allTestCases.Count;
            var testSessionList = new List <Task>();

            foreach (var assemblyFileName in this.runningTests.Select(x => x.AssemblyFileName).Distinct())
            {
                Task task;
                if (runAll)
                {
                    task = this.testUtil.RunAll(assemblyFileName, OnTestsFinished, this.cancellationTokenSource.Token);
                }
                else
                {
                    var builder = ImmutableArray.CreateBuilder <string>();

                    foreach (var testCase in this.runningTests)
                    {
                        if (testCase.AssemblyFileName == assemblyFileName)
                        {
                            builder.Add(testCase.DisplayName);
                        }
                    }

                    task = this.testUtil.RunSpecific(assemblyFileName, builder.ToImmutable(), OnTestsFinished, this.cancellationTokenSource.Token);
                }

                testSessionList.Add(task);
            }

            return(testSessionList);
        }
Beispiel #2
0
        void UpdateTestCaseInfo(bool useSelected)
        {
            var count = FilteredTestCases.Count;

            if (useSelected)
            {
                var selected = FilteredTestCases.Count(tc => tc.IsSelected);
                if (selected > 0)
                {
                    count = selected;
                }
            }

            TestCasesCaption = $"Test Cases ({count:#,0})";
            MaximumProgress  = count;
        }
Beispiel #3
0
 private List <Task> RunFilteredTests()
 {
     return(RunTests(FilteredTestCases.ToImmutableList()));
 }
Beispiel #4
0
 private bool CanExecuteRunAll()
 => !IsBusy && FilteredTestCases.Any();