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); }
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); }