如何在 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 单元测试?