public override void Process(RenderLayoutArgs args)
        {
            if (HttpContext.Current.Request["sc_test"] == null)
            {
                return;
            }
            Sitecore.Context.Items["sc_test"] = HttpContext.Current.Request["sc_test"];

            ReadConfiguration();

            // For the purposes of testing, our database should *always* be master.
            Sitecore.Context.Database = Sitecore.Data.Database.GetDatabase("master");

            // Now re-fetch the context item from the master database.
            Sitecore.Context.Item = Sitecore.Context.Database.GetItem(Sitecore.Context.Item.ID.ToString(), Sitecore.Context.Language);

            InitCookies();
            InitContextItem();
            TestRunner runner = new TestRunner();
            runner.RunTest(_TestConfig);
            RevertContextItem();
            WriteOutput(runner);
        }
        protected void WriteOutput(TestRunner runner)
        {
            XElement root = new XElement("testOutput");
            root.SetAttributeValue("testName", HttpContext.Current.Request["sc_test"]);

            XElement messages = new XElement("messages");
            foreach (string m in runner.Messages)
            {
                XElement message = new XElement("message", m);
                messages.Add(message);
            }
            root.Add(messages);

            XElement output = new XElement("output", runner.Output);
            root.Add(output);

            HttpContext.Current.Response.ContentType = "text/xml";
            HttpContext.Current.Response.Write(root.ToString());
            HttpContext.Current.Response.End();
        }