如何在 Dojo DOH 测试中运行服务器 url

Posted

技术标签:

【中文标题】如何在 Dojo DOH 测试中运行服务器 url【英文标题】:How to run a server url in a Dojo DOH test 【发布时间】:2013-09-16 21:09:48 【问题描述】:

Dojo DOH 示例和教程似乎没有涵盖这种情况。我有一个服务器 url,我想为其编写测试。我希望目标页面显示在 TestPage 选项卡中,然后针对它运行多个测试。我能找到的最接近的例子是一个 html 文件,它定义了一些测试,然后是正文中的一个小部件,但我无法使用我无法控制的 url 来做到这一点。我已经用一个触发robot.init函数的页面完成了它,但我想使用测试运行器页面。

【问题讨论】:

我不认为 DOH 允许您这样做,因为我认为它依赖于测试运行程序和被测页面从同一个域提供服务。也许看看 webdriver 和 theintern.io。 感谢您的回复。我可以将测试放在同一个域下,只是不同的 url。 【参考方案1】:

我终于想到了这个:

   ...
     doh.register("login tests", [

        
            name: "load",
            timeout: 20000,
            runTest: function()
                var d = new doh.Deferred();
                testPage = dom.byId("testBody");
                console.log("in load, testPage: " + testPage);
                doh.showTestPage();
                testPage.src = path;

                robot.sequence(function() 
                        console.log("in load, sequence: ");
                        testpageBody = testPage.contentDocument.getElementsByTagName("body")[0];
                        console.log("in load, testpageBody: " + testpageBody);
                        var bdy = query(".headerFooterLoaded", testpageBody)[0];
                        console.log("in load, headerFooterLoaded: " + bdy);
                        if (!!bdy) 
                            d.callback(true);
                         else 
                            d.errback(new Error("Node with class 'headerFooterLoaded' not found."));
                        
                    , 8000);
                    return d;
               
      ,

... 我试图捕捉 iframe onload 事件,但没有成功。

希望这对某人有所帮助

【讨论】:

以上是关于如何在 Dojo DOH 测试中运行服务器 url的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 doh 测试非 dojo javascript 代码?

如何在 Travis CI 上设置 Dojo Doh 单元测试?

类似于 dojo DOH 的 Javascript 测试框架

Dojo 和 doh:测试特定主题订阅

使用 node.js 在命令行上运行 DOH

使用node.js在命令行上运行DOH