问题标签 [doh]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 是否可以使用 DOH 测试一系列异步函数调用
我正在尝试使用doh.Deferred编写一个测试来检查以下事件序列:
- 使用用户 A 登录(异步)
- 注销(同步)
- 使用用户 A 登录(异步)
第二个回调函数的返回值是另一个doh.Deferred 对象。我的印象是 d 的回调链会等待 d2 但它不会。测试在 d2.callback 被调用之前完成。
我在哪里错了?
有谁知道我测试这种行为的更好方法?
unit-testing - Dojo DOH 怎么了?
Dojo Toolkit 曾经附带一个名为“Doh”的测试工具。它位于 /utils 目录中。
现在,当您下载 dojo-release-1.3.2 时,找不到 /utils 目录。
Doh死了吗?
dojo - 如何在本地测试跨域构建?
使用 dojo 工具包,在不进行实际构建的情况下,在本地测试将作为跨域执行的代码的正确方法是什么?
看起来,有三种可能的选择(每种都有自己的缺点):
- 使用本地(非 xd)XMLHttpRequest dojo.require
- 这个选项并没有真正测试 xd 的行为,因为它通过 XHR 同步地 dojo.require[s] js。
- djConfig.debugAtAllCosts = true;
- 尽管此选项确实异步加载所需的代码(通过“脚本”标签),但它也通过 XHR 拉入代码,解析其中的 dojo.require[s],并将它们拉入。这(使用 loader_debug),同样,这不是 loader_xd 正在做的事情。在另一个问题中有关此主题的更多信息。
- 创建跨域构建
- 这种方法需要构建,这在我运行代码的环境中是不可能的(我们使用我们自己的即时构建过程,其中仅包括特定页面所需的 js。这个过程不适合开发)。
因此,我的问题是:有没有办法使用 loader_xd,它不需要 xd 构建(它将 xd 前缀/后缀添加到每个文件)?
第二种方式(使用 debugAtAllCosts)也让我质疑预解析 dojo.require[s] 的动机。如果 loader_xd 不会(或者更确切地说不能)预解析,为什么为测试/调试创建的方法会这样做?
javascript - Dojo 根目录之外的 JavaScript 函数的 DOH 命令行测试
我正在尝试从 dojo-1.3.2 运行 DOH 以从命令行测试简单的 Javascript 函数。但是,我似乎无法运行任何东西,而且网络似乎没有 DOH 命令行文档。
理想情况下,我想要的结构是:
测试驻留:C:\myproject\tests\
Dojo 驻留:C:\dojo-1.3.2\util\doh
截至目前,我已经在 ..\doh\tests 中进行了一个简单的测试
我尝试在 ..\doh 目录中运行:
java -jar ..\shrinksafe\js.jar runner.js testModule=tests.module
每次我得到:
js:未捕获的 JavaScript 运行时异常:ReferenceError:“窗口”未定义。发生异常:错误:无法加载“tests.module”;最后尝试 'tests/module.js' 0 个测试在 0 个组中运行
有什么我应该做但我遗漏的事情吗?我也尝试过使用 dojoUrl= 指向 dojo.js 文件,但仍然是同样的错误。
据我所知,我的测试在任何地方都没有使用窗口。我有三个文件:
测试/module.js
测试/函数/functions.js
测试/demoFunctions.js
我还尝试重组目录以使 ../dojo-1.3.2/ 包含测试。从命令提示符运行与上述相同的命令同样失败。目录结构:
javascript - 如何使用 doh 测试非 dojo javascript 代码?
doh 是 dojo 单元测试框架。我正在尝试使用 doh 来测试非 dojo javascript 代码,但我面临的问题是 doh 似乎具有侵入性,并迫使我在测试的 js 文件中使用 dojo.provide() (以及相应的 dojo.require() 在测试js文件)。我希望经过测试的 js 文件未经修改且与 dojo 无关。是否可以 ?
dojo - 弹出消息中断的 DOH 机器人测试自动化
为了在我们的构建过程中自动化 DOH 测试,我使用 Selenium RC 在与构建机器不同域的服务器上启动不同的浏览器(IE 和 Firefox)。每个浏览器都指向我们的 runTests.html 以启动 DOH。
有时,当使用 doh.robot 的测试开始时,会显示以下消息:
“DOH 检测到当前网页正在尝试访问 DOH,但属于与您同意让 DOH 自动化的域不同的域。如果您不打算通过访问此网页来开始新的 DOH 测试,请按取消现在离开网页”
但是由于这些测试是无人值守的,它只是坐在那里等待某人单击确定,并且 Selenium 超时(在 IE 8 中,弹出窗口似乎自动消失,但机器人随后什么也不做)。
正如我所说,它并不总是发生。在弹出窗口中单击“确定”后,该消息将停止显示,并且该消息可能会消失几个会话,但随后会再次显示,这似乎是一种任意方式。
有谁知道防止此弹出窗口显示的方法?
javascript - 如何通过 Jenkins 运行 Dojo DOH 单元测试?
有没有人尝试将 Dojo DOH 单元测试与 Jenkins 集成?
我想做以下事情,但如果这已经完成,我不想重新发明它。所以,我在想:
- 从 Jenkins 的构建后步骤开始 DOH 测试并等待结果
- 在无头浏览器(例如 Crowbar)中自行运行测试
- 从 Crowbar 返回的 HTML 中解析成功/错误计数
- 查找(或编写)一个 Jenkins 插件,该插件将 (a) 如果测试失败,则构建失败,(b) 呈现测试结果,(c) 可能将结果集成到 CI 游戏插件中
问题:
- 以前有这样做过吗?
- 你看到上面的大纲有什么问题吗?
- 您是否知道有帮助的 Jenkins 插件,还是我必须自己构建?
javascript - doh 机器人在运行前一个实例后不可用
我获取了最新的 dojo 代码来玩弄 DOH 机器人。我已经安装了 dojo/dijit/dojox/util 包的两个完全相同的副本:一个在我的服务器的根级别,一个在 /js/ 下。
然后在下面的另一个副本:
当我导航到 http://localhost/util/doh/tests/Robot.html 时,DOH 机器人初始化正常并且一切运行(鼠标移动、测试通过等)
当我尝试做同样的事情时,仅在 /js 文件夹中(例如 http://localhost/js/util/doh/tests/Robot.html)我几乎总是得到错误:
有时机器人会很好地加载并通过所有测试。有时我会有 Java 弹出窗口询问是否允许使用机器人(发生这种情况时,我会收到 doh.robot 不可用错误。)
知道什么可能导致这种情况,或者有一些提示可以防止这种情况发生吗?
我尝试了以下事情(甚至尝试了这些步骤的所有组合):
- 清除 Firefox 设置(ctl+shift+del,检查所有)
- f5,ctl+f5
- 杀死java进程
- 重启浏览器
- 重启服务器
- 重新启动计算机
- 尝试了所有不同的浏览器,相同的效果
- 重新编译/退出 DOHRobot.jar
真正让我恼火的是,我之前已经看到它运行良好,所以我知道 java 和插件安装正确。
我总是可以回到顶层并很好地运行机器人;只有当我在 /js/ 目录中时才会出现问题。
任何提示都会很棒!谢谢
编辑我认为它现在有效。问题是我正在重新编译机器人但没有正确签署 JAR。(编译时检查 .bat 文件并注意它如何在您上面的目录中查找密钥库;当我制作密钥库时,它保存到默认用户目录。)即使我没有更改任何 java 代码,JAR 的签名仍然不正确。此外,如果有人这样做,我忘记包括的一个步骤是清除 Java 缓存!我不确定这有多重要。
无论如何,我认为这已经解决了;看起来我也没有正确地描述这个问题。
dojo - 在 mstest 中运行 Dojo DOH 测试
我需要在 MSTest 框架内运行 dojo DOH 测试。到目前为止,除了 Stephen Walter 的链接之外,我还没有找到任何有用的链接。一个要求是避免将测试加载到 jscript 中;对于一些测试,我需要在我猜的浏览器实例中运行。
任何意见,将不胜感激
doh - 如何同步执行 DOH 测试?
任何人都可以帮助我找到解决此问题的方法。我有(假设)3个doh函数第一个是异步的,其余的是同步的。我必须先调用异步函数,然后将此函数的结果传递给其他两个函数,这可能吗?
例子 :
任何帮助都会很棒。