Esempio n. 1
0
        /// <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);
                        }
                    }
                }
            }
        }