bool SetStarted(TestSuiteWrapper suite) { if (suite == null) { return(false); } if (!_testSuiteStarted.Contains(suite)) { _testSuiteStarted.Add(suite); var parent = suite.Parent as TestSuiteWrapper; if (parent != null) { SetStarted(parent); parent.RunningTests.Add(suite); } OnTestStarted(new UnitTestTestEventArgs(suite)); return(true); } return(false); }
public TestSuiteWrapper GetSuite(string fullName, bool isClass) { var names = fullName.Split('.'); TestSuiteWrapper suite = this; var len = isClass ? names.Length : names.Length - 1; for (int i = 0; i < len; i++) { string name = names[i]; var child = suite.Children.FirstOrDefault(r => r.Name == name) as TestSuiteWrapper; if (child == null) { child = new TestSuiteWrapper { Name = name, Parent = suite, Assembly = Assembly }; suite.Children.Add(child); } suite = child; } return(suite); }
void SetStatus(TestSuiteWrapper suite, TestStatus status) { if (suite == null) { return; } if (_testSuiteStatus.TryGetValue(suite, out var currentStatus)) { status = (TestStatus)Math.Max((int)currentStatus, (int)status); } _testSuiteStatus[suite] = status; if (_testSuiteStarted.Contains(suite) && suite.RunningTests.Count == 0) { _testSuiteStarted.Remove(suite); var parent = suite.Parent as TestSuiteWrapper; if (parent != null) { parent.RunningTests.Remove(suite); } OnTestFinished(new UnitTestResultEventArgs(new TestResultWrapper(suite, status))); SetStatus(parent, status); } }