private string[] getTestsFor(RunInfo info, TestItem[] cachedTests) { var tests = new List<string>(); foreach (var failed in cachedTests) { if (failed.Key.Equals(info.Assembly)) tests.Add(failed.Value.Name); } return tests.ToArray(); }
private TestToRun[] getTestsFor(RunInfo info, TestItem[] cachedTests) { var tests = new List<TestToRun>(); foreach (var failed in cachedTests) { if (failed.Key.Equals(info.Assembly)) tests.Add(new TestToRun(TestRunner.Any, failed.Value.Name)); } return tests.ToArray(); }
private bool wasRun(TestItem test) { foreach (var info in _infos) { if (info.Assembly.Equals(_results.Assembly)) { if (info.GetTestsFor(test.Value.Runner).Contains(test.Value.Name)) return true; } } return false; }
private TestResult[] getTests(TestItem[] cacheList) { var tests = new List<TestResult>(); foreach (var test in cacheList) { if ((from t in _results.All where new TestItem(_results.Assembly, _results.Project, t).IsTheSameTestAs(test) select t).Count() == 0) { if (_results.IsPartialTestRun && !wasRun(test)) continue; tests.Add(new TestResult(test.Value.Runner, TestRunStatus.Passed, test.Value.Name)); } } return tests.ToArray(); }
private TestResult[] getTests(TestItem[] cacheList) { var tests = new List<TestResult>(); foreach (var test in cacheList) { if (!test.Value.Runner.Equals(_results.Runner)) continue; if ((from t in _results.All where new TestItem(_results.Assembly, _results.Project, t).IsTheSameTestAs(test) select t).Count() == 0) { if (_results.IsPartialTestRun && !wasRun(test)) continue; tests.Add(new TestResult(test.Value.Runner, TestRunStatus.Passed, test.Value.Name, test.Value.Message, test.Value.StackTrace, test.Value.TimeSpent.TotalMilliseconds).SetDisplayName(test.Value.DisplayName)); Debug.WriteDebug("Adding deleted test previously failing as passed: " + test.Value.Name); } } return tests.ToArray(); }
public void RemoveTest(TestItem ignored) { _removedTests.Add(ignored.GetHashCode(), ignored); }
private void moveTestsBetweenStates(TestRunResults results, TestResult[] newSstate, Dictionary<int, TestItem> oldState) { foreach (var test in newSstate) { var item = new TestItem(results.Assembly, results.Project, test); var changed = oldState .Where(x => x.Value.IsTheSameTestAs(item)) .Select(x => x.Key) .ToArray(); if (changed.Length > 0) { //logTest("Removing test that changed state ", item); foreach (var changedItem in changed) oldState.Remove(changedItem); } } }
private TestToRun[] getTestsFor(TestRunner runner, RunInfo info, TestItem[] cachedTests) { var tests = new List<TestToRun>(); foreach (var test in cachedTests) { if (test.Key.Equals(info.Assembly) && test.Value.Runner.Equals(runner) && !infoContainsTest(info, test)) tests.Add(new TestToRun(runner, test.Value.Name)); } return tests.ToArray(); }
private static bool infoContainsTest(RunInfo info, TestItem test) { return info.GetTestsFor(test.Value.Runner).Any(infoTest => infoTest.Equals(test.Value.Name)); }
private void removeChanged(TestRunResults results) { foreach (var test in results.Passed) { var item = new TestItem(results.Assembly, results.Project, test); removeIfExists(item, _ignored); removeIfExists(item, _failed); } moveTestsBetweenStates(results, results.Failed, _ignored); moveTestsBetweenStates(results, results.Ignored, _failed); }
private void goToTestItemReference(TestItem testItem) { if (testItem.Value.StackTrace.Length > 0) goToReference(testItem.Value.StackTrace[0].File, testItem.Value.StackTrace[0].LineNumber); }
public void RemoveTest(TestItem ignored) { _removedTests.Add(ignored); }
public void AddTest(TestItem test) { _addedTests.Add(test.GetHashCode(), test); }
public bool IsTheSameTestAs(TestItem item) { return Key.Equals(item.Key) && Value.Runner.Equals(item.Value.Runner) && Value.Name.Equals(item.Value.Name); }
public bool IsTheSameTestAs(TestItem item) { return(Key.Equals(item.Key) && Value.Runner.Equals(item.Value.Runner) && Value.Name.Equals(item.Value.Name)); }
public bool IsTheSameTestAs(TestItem item) { if (item.Value == null) return false; // WTF!!?? == Fail return Key.Equals(item.Key) && Value.Runner.Equals(item.Value.Runner) && Value.Name.Equals(item.Value.Name) && Value.DisplayName.Equals(item.Value.DisplayName); }
private void logTest(string prefix, TestItem item) { Debug.WriteDebug("{6} ({2}.{1}) from {0} named {4} saying {3} in {5}", item.Key, item.Value.Status, item.Value.Runner, item.Value.Name, item.Value.Message, getStackTrace(item.Value.StackTrace), prefix); }
public void AddTest(TestItem test) { _addedTests.Add(test); }
private void removeIfExists(TestItem item, List<TestItem> list) { if (list.Exists(i => i.IsTheSameTestAs(item))) list.RemoveAll(i => i.IsTheSameTestAs(item)); }
private string formatTestResult(TestItem item) { var test = item.Value; return string.Format("{0} -> {1}", test.Status, test.Name); }
private void removeIfExists(TestItem item, List<TestItem> list) { if (list.Exists(i => i.IsTheSameTestAs(item))) { logTest("Removing passing test ", item); list.RemoveAll(i => i.IsTheSameTestAs(item)); } }
private void moveTestsBetweenStates(TestRunResults results, TestResult[] newSstate, List<TestItem> oldState) { foreach (var test in newSstate) { var item = new TestItem(results.Assembly, results.Project, test); if (oldState.Exists(i => i.IsTheSameTestAs(item))) { logTest("Removing test that changed state ", item); oldState.RemoveAll(i => i.IsTheSameTestAs(item)); } } }
private void mergeTestList(List<TestItem> list, string key, string project, TestResult[] results, TestResult[] passingTests) { foreach (var test in results) { var item = new TestItem(key, project, test); if (!list.Contains(item)) { if (list.Exists(i => i.IsTheSameTestAs(item))) { logTest("Removing existing test in case it changed ", item); list.RemoveAll(i => i.IsTheSameTestAs(item)); } logTest("Adding test ", item); list.Insert(0, item); } } }
private void removeIfExists(TestItem item, Dictionary<int, TestItem> list) { var passing = list .Where(x => x.Value.IsTheSameTestAs(item)) .Select(x => x.Key) .ToArray(); if (passing.Length > 0) { //logTest("Removing passing test ", item); foreach (var passed in passing) list.Remove(passed); } }
private void mergeTestList(Dictionary<int, TestItem> list, string key, string project, TestResult[] results, TestResult[] passingTests) { foreach (var test in results) { var item = new TestItem(key, project, test); if (!list.ContainsKey(item.GetHashCode())) { var newTests = list .Where(x => x.Value.IsTheSameTestAs(item)) .Select(x => x.Key) .ToArray(); if (newTests.Length > 0) { //logTest("Removing existing test in case it changed ", item); foreach (var newTest in newTests) list.Remove(newTest); } //logTest("Adding test ", item); //list.Insert(0, item); list.Add(item.GetHashCode(), item); } } }
private void removeChanged(TestRunResults results) { _failed.RemoveAll(x => x.Value.Runner == TestRunner.Any); _ignored.RemoveAll(x => x.Value.Runner == TestRunner.Any); foreach (var test in results.Passed) { var item = new TestItem(results.Assembly, results.Project, test); removeIfExists(item, _ignored); removeIfExists(item, _failed); } moveTestsBetweenStates(results, results.Failed, _ignored); moveTestsBetweenStates(results, results.Ignored, _failed); }