private IEnumerable <ServiceMessage> ProcessNotStartedTests(string flowId, string id, XmlNode currentEvent) { var testToProcess = new List <string>(); foreach (var notStartedTest in _notStartedNUnit3Tests) { var parentId = notStartedTest.Key; while (_hierarchy.TryFindParentId(parentId, out parentId)) { if (id == parentId) { testToProcess.Add(notStartedTest.Key); break; } } } foreach (var testId in testToProcess) { var testEvent = _notStartedNUnit3Tests[testId]; _notStartedNUnit3Tests.Remove(testId); var fullName = testEvent.GetAttribute("fullname"); if (string.IsNullOrEmpty(fullName)) { continue; } foreach (var message in _serviceMessageFactory.TestStarted(new EventId(_teamCityInfo, flowId, fullName))) { _statistics.RegisterTestStart(); yield return(message); } foreach (var message in _serviceMessageFactory.TestFinished(new EventId(_teamCityInfo, flowId, fullName), testEvent, currentEvent)) { _statistics.RegisterTestFinish(); yield return(message); } } }