/// <summary> /// Execute Nunit.exe. /// </summary> protected override void OnExecute() { if (!string.IsNullOrEmpty(resultsFileName) && File.Exists(resultsFileName)) { OnOutputDataReceived(string.Format(" * The test results file {0}, already exists. Deleting it.", resultsFileName)); File.Delete(resultsFileName); } base.OnExecute(); if (!string.IsNullOrEmpty(resultsFileName)) { if (!File.Exists(resultsFileName)) { succeeded = false; errorMessage = string.Format("The Nunit.exe results file {0} does not exist.", resultsFileName); } else { XPathDocument document = new XPathDocument(resultsFileName); XPathNavigator navigator = document.CreateNavigator(); XPathNavigator testResultsNode = navigator.SelectSingleNode("test-results"); if (testResultsNode != null) { int errors = testResultsNode.GetAttributeAsInt("errors", 0); int failures = testResultsNode.GetAttributeAsInt("failures", 0); int invalid = testResultsNode.GetAttributeAsInt("invalid", 0); int inconclusive = testResultsNode.GetAttributeAsInt("inconclusive", 0); if (errors > 0 || failures > 0 || invalid > 0 || inconclusive > 0) { succeeded = false; errorMessage = string.Format("Errors:{0} Failures:{1} Invalid:{2} Inconclusive:{3}. See results file {1} for more information", errors, failures, invalid, inconclusive, resultsFileName); } } } } }