private void OnTestExecuted(object sender, EventArgs <TestResult> e) { //Update test item view model and state groups var testItem = TestSolution.FindChild(e.Value.Method); if (testItem != null) { //Clean up results from last run when the first result from next session arrives var oldItems = testItem.Result.Results .Where(p => p.SessionId != e.Value.SessionId) .ToArray(); foreach (var oldItem in oldItems) { testItem.Result.Results.Remove(oldItem); } //Add new results testItem.Result.Results.Add(e.Value); testItem.State = testItem.Result.Results.Max(p => p.Outcome); _testsExecuted++; var resultItem = testItem.CreateResultViewModel(e.Value); var stateGroup = _stateGroups[resultItem.State]; stateGroup.Items.OrderedAdd(resultItem, (a, b) => StringComparer.OrdinalIgnoreCase.Compare(a.DisplayName, b.DisplayName)); } //Update test execution state if (e.Value.Method == _testExecuting) { _testExecuting = null; } UpdateTestExecutionState(); }
private void OnTestExecuted(object sender, EventArgs <TestResult> e) { //Update test item view model and state groups var testItem = TestSolution.FindChild(e.Value.Method); if (testItem != null) { testItem.Result.Results.Add(e.Value); testItem.State = testItem.Result.Results.Max(p => p.Outcome); _testsExecuted++; var resultItem = testItem.CreateResultViewModel(e.Value); var stateGroup = StateGroups.FirstOrDefault(p => p.State == resultItem.State); if (stateGroup == null) { stateGroup = new TestStateGroupViewModel(resultItem.State); StateGroups.OrderedAdd(stateGroup, (a, b) => a.State.CompareTo(b.State)); } stateGroup.Items.OrderedAdd(resultItem, (a, b) => StringComparer.OrdinalIgnoreCase.Compare(a.CodeItem.DisplayName, b.CodeItem.DisplayName)); } //Update test execution state if (e.Value.Method == _testExecuting) { _testExecuting = null; } UpdateTestExecutionState(); }
public void SelectTestItem(TestMethod testMethod) { var item = TestSolution.FindChild(testMethod); if (item != null) { item.ExpandParents(); item.IsSelected = true; IsTestsTabSelected = true; SelectedTestItem = item; } }