예제 #1
0
        /// <summary>
        /// Logs the test node by calling <see cref="IRunnerLogger.TestFinished"/>. It will also call
        /// <see cref="IRunnerLogger.TestPassed"/>, <see cref="IRunnerLogger.TestFailed"/>, or
        /// <see cref="IRunnerLogger.TestSkipped"/> as appropriate.
        /// </summary>
        /// <param name="testNode">The test node.</param>
        /// <param name="logger">The logger.</param>
        /// <returns>Returns true if the user wishes to continue running tests; returns false otherwise.</returns>
        public static bool LogTestNode(XmlNode testNode, IRunnerLogger logger)
        {
            string name       = testNode.Attributes["name"].Value;
            string type       = testNode.Attributes["type"].Value;
            string method     = testNode.Attributes["method"].Value;
            double time       = 0;
            string output     = null;
            string stackTrace = null;

            if (testNode.Attributes["time"] != null)
            {
                time = Double.Parse(testNode.Attributes["time"].Value, CultureInfo.InvariantCulture);
            }
            if (testNode.SelectSingleNode("output") != null)
            {
                output = testNode.SelectSingleNode("output").InnerText;
            }
            if (testNode.SelectSingleNode("failure/stack-trace") != null)
            {
                stackTrace = testNode.SelectSingleNode("failure/stack-trace").InnerText;
            }

            switch (testNode.Attributes["result"].Value)
            {
            case "Pass":
                logger.TestPassed(name, type, method, time, output);
                break;

            case "Fail":
                logger.TestFailed(name, type, method, time, output,
                                  testNode.SelectSingleNode("failure").Attributes["exception-type"].Value,
                                  testNode.SelectSingleNode("failure/message").InnerText,
                                  stackTrace);
                break;

            case "Skip":
                logger.TestSkipped(name, type, method,
                                   testNode.SelectSingleNode("reason/message").InnerText);
                break;
            }

            return(logger.TestFinished(name, type, method));
        }
예제 #2
0
        /// <summary>
        /// Logs the test node by calling <see cref="IRunnerLogger.TestFinished"/>. It will also call
        /// <see cref="IRunnerLogger.TestPassed"/>, <see cref="IRunnerLogger.TestFailed"/>, or
        /// <see cref="IRunnerLogger.TestSkipped"/> as appropriate.
        /// </summary>
        /// <param name="testNode">The test node.</param>
        /// <param name="logger">The logger.</param>
        /// <returns>Returns true if the user wishes to continue running tests; returns false otherwise.</returns>
        public static bool LogTestNode(XmlNode testNode, IRunnerLogger logger)
        {
            string name = testNode.Attributes["name"].Value;
            string type = testNode.Attributes["type"].Value;
            string method = testNode.Attributes["method"].Value;
            double time = 0;
            string output = null;
            string stackTrace = null;

            if (testNode.Attributes["time"] != null)
                time = Double.Parse(testNode.Attributes["time"].Value, CultureInfo.InvariantCulture);
            if (testNode.SelectSingleNode("output") != null)
                output = testNode.SelectSingleNode("output").InnerText;
            if (testNode.SelectSingleNode("failure/stack-trace") != null)
                stackTrace = testNode.SelectSingleNode("failure/stack-trace").InnerText;

            switch (testNode.Attributes["result"].Value)
            {
                case "Pass":
                    logger.TestPassed(name, type, method, time, output);
                    break;

                case "Fail":
                    logger.TestFailed(name, type, method, time, output,
                                      testNode.SelectSingleNode("failure").Attributes["exception-type"].Value,
                                      testNode.SelectSingleNode("failure/message").InnerText,
                                      stackTrace);
                    break;

                case "Skip":
                    logger.TestSkipped(name, type, method,
                                       testNode.SelectSingleNode("reason/message").InnerText);
                    break;
            }

            return logger.TestFinished(name, type, method);
        }