in GoogleTestAdapter/Core/TestResults/XmlTestResultParser.cs [93:138]
private TestResult ParseTestResult(XmlNode testcaseNode)
{
string qualifiedName = GetQualifiedName(testcaseNode);
TestCase testCase;
if (!_testCasesMap.TryGetValue(qualifiedName, out testCase))
return null;
var testResult = new TestResult(testCase)
{
ComputerName = Environment.MachineName,
DisplayName = testCase.DisplayName
};
string duration = testcaseNode.Attributes["time"].InnerText;
testResult.Duration = ParseDuration(duration);
string testCaseStatus = testcaseNode.Attributes["status"].InnerText;
switch (testCaseStatus)
{
case "run":
XmlNodeList failureNodes = testcaseNode.SelectNodes("failure");
if (failureNodes.Count == 0)
{
testResult.Outcome = TestOutcome.Passed;
}
else
{
var parser = new ErrorMessageParser(failureNodes);
parser.Parse();
testResult.Outcome = TestOutcome.Failed;
testResult.ErrorMessage = parser.ErrorMessage;
testResult.ErrorStackTrace = parser.ErrorStackTrace;
}
break;
case "notrun":
testResult.Outcome = TestOutcome.Skipped;
break;
default:
string msg = String.Format(Resources.UnknownTestCase, testCaseStatus);
_logger.LogError(msg);
throw new Exception(msg);
}
return testResult;
}