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();
		}
Пример #3
0
 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;
 }
Пример #4
0
 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();
 }
Пример #6
0
 public void RemoveTest(TestItem ignored)
 {
     _removedTests.Add(ignored.GetHashCode(), ignored);
 }
Пример #7
0
 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));
 }
Пример #10
0
 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);
 }
Пример #11
0
 private void goToTestItemReference(TestItem testItem)
 {
     if (testItem.Value.StackTrace.Length > 0)
         goToReference(testItem.Value.StackTrace[0].File, testItem.Value.StackTrace[0].LineNumber);
 }
Пример #12
0
 public void RemoveTest(TestItem ignored) { _removedTests.Add(ignored); }
 public void AddTest(TestItem test) { _addedTests.Add(test.GetHashCode(), test); }
Пример #14
0
 public bool IsTheSameTestAs(TestItem item)
 {
     return Key.Equals(item.Key) && Value.Runner.Equals(item.Value.Runner) && Value.Name.Equals(item.Value.Name);
 }
Пример #15
0
 public void AddTest(TestItem test)
 {
     _addedTests.Add(test.GetHashCode(), test);
 }
Пример #16
0
 public bool IsTheSameTestAs(TestItem item)
 {
     return(Key.Equals(item.Key) && Value.Runner.Equals(item.Value.Runner) && Value.Name.Equals(item.Value.Name));
 }
Пример #17
0
 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);
 }
Пример #18
0
 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);
 }
Пример #19
0
 public void AddTest(TestItem test)
 {
     _addedTests.Add(test);
 }
 public void RemoveTest(TestItem ignored) { _removedTests.Add(ignored.GetHashCode(), ignored); }
Пример #21
0
 public void RemoveTest(TestItem ignored)
 {
     _removedTests.Add(ignored);
 }
Пример #22
0
 public void AddTest(TestItem test) { _addedTests.Add(test); }
Пример #23
0
 private void removeIfExists(TestItem item, List<TestItem> list)
 {
     if (list.Exists(i => i.IsTheSameTestAs(item)))
         list.RemoveAll(i => i.IsTheSameTestAs(item));
 }
Пример #24
0
 private string formatTestResult(TestItem item)
 {
     var test = item.Value;
     return string.Format("{0} -> {1}", test.Status, test.Name);
 }
Пример #25
0
 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));
     }
 }
Пример #26
0
 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));
         }
     }
 }
Пример #27
0
 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);
         }
     }
 }
Пример #28
0
 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);
     }
 }
Пример #29
0
 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);
 }
Пример #30
0
 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);
         }
     }
 }
Пример #31
0
 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);
 }