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); }
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; }
private List <Task> RunFilteredTests() { return(RunTests(FilteredTestCases.ToImmutableList())); }
private bool CanExecuteRunAll() => !IsBusy && FilteredTestCases.Any();