CreateFailedTestResult() private method

private CreateFailedTestResult ( TestCase testCase, System.TimeSpan duration, string errorMessage, string errorStackTrace ) : TestResult
testCase GoogleTestAdapter.Model.TestCase
duration System.TimeSpan
errorMessage string
errorStackTrace string
return GoogleTestAdapter.Model.TestResult
        private TestResult CreateTestResult()
        {
            int currentLineIndex = 0;

            while (currentLineIndex < _consoleOutput.Count &&
                   !StandardOutputTestResultParser.IsRunLine(_consoleOutput[currentLineIndex]))
            {
                currentLineIndex++;
            }

            if (currentLineIndex == _consoleOutput.Count)
            {
                return(null);
            }

            string   line = _consoleOutput[currentLineIndex++];
            string   qualifiedTestname = StandardOutputTestResultParser.RemovePrefix(line).Trim();
            TestCase testCase          = StandardOutputTestResultParser.FindTestcase(qualifiedTestname, _testCasesRun);

            if (testCase == null)
            {
                _logger.DebugWarning($"No known test case for test result of line '{line}'' - are you repeating a test run, but tests have changed in the meantime?");
                return(null);
            }

            if (currentLineIndex == _consoleOutput.Count)
            {
                CrashedTestCase = testCase;
                return(StandardOutputTestResultParser.CreateFailedTestResult(
                           testCase,
                           TimeSpan.FromMilliseconds(0),
                           StandardOutputTestResultParser.CrashText,
                           ""));
            }

            line = _consoleOutput[currentLineIndex++];

            string errorMsg = "";

            while (
                !(StandardOutputTestResultParser.IsFailedLine(line) ||
                  StandardOutputTestResultParser.IsPassedLine(line) ||
                  StandardOutputTestResultParser.IsSkippedLine(line)) &&
                currentLineIndex <= _consoleOutput.Count)
            {
                errorMsg += line + "\n";
                line      = currentLineIndex < _consoleOutput.Count ? _consoleOutput[currentLineIndex] : "";
                currentLineIndex++;
            }
            if (StandardOutputTestResultParser.IsFailedLine(line))
            {
                ErrorMessageParser parser = new ErrorMessageParser(errorMsg);
                parser.Parse();
                return(StandardOutputTestResultParser.CreateFailedTestResult(
                           testCase,
                           StandardOutputTestResultParser.ParseDuration(line, _logger),
                           parser.ErrorMessage,
                           parser.ErrorStackTrace));
            }
            if (StandardOutputTestResultParser.IsPassedLine(line))
            {
                return(StandardOutputTestResultParser.CreatePassedTestResult(
                           testCase,
                           StandardOutputTestResultParser.ParseDuration(line, _logger)));
            }
            if (StandardOutputTestResultParser.IsSkippedLine(line))
            {
                return(StandardOutputTestResultParser.CreateSkippedTestResult(
                           testCase,
                           StandardOutputTestResultParser.ParseDuration(line, _logger)));
            }

            CrashedTestCase = testCase;
            string message = StandardOutputTestResultParser.CrashText;

            message += errorMsg == "" ? "" : $"\nTest output:\n\n{errorMsg}";
            TestResult result = StandardOutputTestResultParser.CreateFailedTestResult(
                testCase,
                TimeSpan.FromMilliseconds(0),
                message,
                "");

            return(result);
        }
Example #2
0
        private TestResult CreateTestResult()
        {
            int currentLineIndex = 0;

            while (currentLineIndex < _consoleOutput.Count &&
                   !StandardOutputTestResultParser.IsRunLine(_consoleOutput[currentLineIndex]))
            {
                currentLineIndex++;
            }

            if (currentLineIndex == _consoleOutput.Count)
            {
                return(null);
            }

            string   line = _consoleOutput[currentLineIndex++];
            string   qualifiedTestname = StandardOutputTestResultParser.RemovePrefix(line).Trim();
            TestCase testCase          = StandardOutputTestResultParser.FindTestcase(qualifiedTestname, _testCasesRun);

            if (testCase == null)
            {
                _logger.DebugWarning(String.Format(Resources.NoKnownTestCaseMessage, line));
                return(null);
            }

            if (currentLineIndex == _consoleOutput.Count)
            {
                CrashedTestCase = testCase;
                return(StandardOutputTestResultParser.CreateFailedTestResult(
                           testCase,
                           TimeSpan.FromMilliseconds(0),
                           StandardOutputTestResultParser.CrashText,
                           ""));
            }

            line = _consoleOutput[currentLineIndex++];

            string errorMsg = "";

            while (
                !(StandardOutputTestResultParser.IsFailedLine(line) ||
                  StandardOutputTestResultParser.IsPassedLine(line)) &&
                currentLineIndex <= _consoleOutput.Count)
            {
                errorMsg += line + "\n";
                line      = currentLineIndex < _consoleOutput.Count ? _consoleOutput[currentLineIndex] : "";
                currentLineIndex++;
            }
            if (StandardOutputTestResultParser.IsFailedLine(line))
            {
                ErrorMessageParser parser = new ErrorMessageParser(errorMsg);
                parser.Parse();
                return(StandardOutputTestResultParser.CreateFailedTestResult(
                           testCase,
                           StandardOutputTestResultParser.ParseDuration(line, _logger),
                           parser.ErrorMessage,
                           parser.ErrorStackTrace));
            }
            if (StandardOutputTestResultParser.IsPassedLine(line))
            {
                return(StandardOutputTestResultParser.CreatePassedTestResult(
                           testCase,
                           StandardOutputTestResultParser.ParseDuration(line, _logger)));
            }

            CrashedTestCase = testCase;
            string message = StandardOutputTestResultParser.CrashText;

            message += errorMsg == "" ? "" : ("\n" + Resources.TestOutput + $"\n\n{errorMsg}");
            TestResult result = StandardOutputTestResultParser.CreateFailedTestResult(
                testCase,
                TimeSpan.FromMilliseconds(0),
                message,
                "");

            return(result);
        }