示例#1
0
        public void TestFinished(NUnitTestEventTestCase resultNode)
        {
            var testId = resultNode.Id;

            if (_outputNodes.TryGetValue(testId, out var outputNodes))
            {
                _outputNodes.Remove(testId);
            }

            var result = _testConverter.GetVsTestResults(resultNode, outputNodes ?? EmptyNodes);

            if (_settings.ConsoleOut == 1 && !string.IsNullOrEmpty(result.ConsoleOutput))
            {
                _recorder.SendMessage(TestMessageLevel.Informational, result.ConsoleOutput);
            }
            if (_settings.ConsoleOut == 1 && !string.IsNullOrEmpty(resultNode.ReasonMessage))
            {
                _recorder.SendMessage(TestMessageLevel.Informational, $"{resultNode.Name}: {resultNode.ReasonMessage}");
            }

            _recorder.RecordEnd(result.TestCaseResult.TestCase, result.TestCaseResult.Outcome);
            foreach (var vsResult in result.TestResults)
            {
                _recorder.RecordResult(vsResult);
            }

            if (result.TestCaseResult.Outcome == TestOutcome.Failed && _settings.StopOnError)
            {
                executor.StopRun();
            }
        }