private HtmlPage GeneratePage(string script, bool includeLinq)
        {
            WebClient client = new WebClient();
            try {
                var html =
            @"<html>
            <head>
            <title>Test</title>
            </head>
            <body>
            <script type=""text/javascript"">" + Environment.NewLine + Common.MscorlibScript + @"</script>
            " + (includeLinq ? @"		<script type=""text/javascript"">" + Environment.NewLine + Common.LinqScript + @"</script>" : "") + @"
            <script type=""text/javascript"">" + Environment.NewLine + script + @"</script>
            </body>
            </html>
            ";
                if (Output == OutputType.Html)
                    Console.Write(html);

                var response = new StringWebResponse(html, new URL("http://localhost/test.htm"));
                return HTMLParser.parseHtml(response, client.getCurrentWindow());
            }
            finally {
                client.closeAllWindows();
            }
        }
        protected HtmlPage GeneratePage(bool print = false)
        {
            var client = new WebClient();
            try {
                var html =
            @"<html>
            <head>
            <title>Test</title>
            <style>" + QUnitCss + @"</style>
            </head>
            <body>
            <script type=""text/javascript"">" + Environment.NewLine + MscorlibScript + @"</script>
            <script type=""text/javascript"">" + Environment.NewLine + QUnitScript + @"</script>";

                foreach (var src in ScriptSources)
                    html += Environment.NewLine + "<script type=\"text/javascript\">" + Environment.NewLine + src + "</script>";
            html += @"
            <div id=""qunit""></div>
            <script type=""text/javascript"">(new " + TestClassName + @"()).runTests();</script>
            </body>
            </html>
            ";
                if (print)
                    Console.Write(html);

                var tempFile = Path.Combine(Environment.CurrentDirectory, Guid.NewGuid().ToString("N") + ".htm");
                try {
                    File.WriteAllText(tempFile, html);
                    var result = (HtmlPage)client.getPage("file://" + tempFile.Replace("\\", "/"));
                    DateTime startTime = DateTime.Now;
                    while (!result.getElementById("qunit-testresult").getTextContent().Contains("completed")) {
                        System.Threading.Thread.Sleep(100);
                        if ((DateTime.Now - startTime).Seconds > 3600)
                            throw new Exception("Tests timed out");
                    }
                    return result;
                }
                finally {
                    try { File.Delete(tempFile); } catch {}
                }
            }
            finally {
                client.closeAllWindows();
            }
        }