问题标签 [intern]
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 - Dojo Intern:查找小部件或页面元素的最佳方法是什么?
http://theintern.io/:在功能测试中查找 dojo 生成的小部件 id 的最佳方法是什么,我应该使用webdriver“elementBy...”方法还是“dijit/registry”或“dojo/query”?
目前,我正在使用 dijit 注册表遍历所有小部件,直到通过标签值或属性等标识符找到我感兴趣的小部件。但要做到这一点,我只是在迭代这个registry.toArray()
集合,感觉有点粗糙。
例如
更新
目前,正在测试的应用程序避免在其页面元素上设置 id,因为使用了多个相同类型的小部件。因此通过其他方式找到它们更难,但我已经通过上面的示例和使用 dojo/query 来管理它,当然我可以使用 xpath。上面的例子是一个粗略的例子,我可以把搜索范围缩小一点。
我只是想知道人们对查找页面元素有什么想法,我一直专注于小部件 ID,但查找任何属性都会有所帮助。例如,也许有一个 Intern 插件可以查找文本?
unit-testing - 如何模拟使用 dojo/node 加载的 Node.js 模块
我有一个应用程序,其服务器代码在 Node.js 上运行并使用 Dojo。我有一个config
定义如下的模块:
为了能够对这个模块进行单元测试,我编写了两个模拟:一个用于本nconf
机模块,一个用于dojoConfig
. 这是测试:
我可以看到我的模拟dojoConfig
已正确加载,但不是nconf
模块的模拟。在 Intern 的网络广播中,Dylan 提到映射不考虑插件,有办法强制dojo/node
模块加载 this nconfMock
。你介意给我更多细节吗?
显然,这是冗长的,所以如果这仍然是一个常见的请求,我们将来可能会做一些事情让它变得更简单。
重要提示:如果没有映射dojo/node
到intern/node_modules/dojo/node
,我config
上面定义的初始模块的加载在 Intern 环境中会失败。映射在intern.js
文件中完成。报告的错误是:
解决方案:正如下面 Colin Snover 所建议的,我现在使用 Mockery。我也不使用contextual require
,只使用默认的。这是使用 Dojo 工具包 1.9.3 版的(简化的)解决方案。
谢谢, 多姆
javascript - 在 TheIntern 测试框架下加载 Dojo AMD 模块失败
我正在创建一个使用TheIntern测试框架的演示。当我尝试加载测试模块demo/intests/data时,我不断收到此错误:
但是,从浏览器访问这个文件是可以的,这里是服务器日志:
我尝试在demo/intests/data中创建一个尽可能简单的模块:
数据:
- 应用程序根目录位于 $HOME/Projects/dojo_playground/tutorials/
- 模块demo/intests/data位于 *$HOME/Projects/dojo_playground/tutorials/demo/intests/data.js*
- 实习生配置: http: //pastebin.com/hyi55qp7。
- webserver 是 Nodejitsu 的 http-server,从 localhost 运行,webroot 是 $HOME/Projects
javascript - 将 Intern 与 Selenium 和动态 proxyUrl 结合使用
我的配置是由 grunt 和以下实习生配置(部分)启动的实习生测试环境:
问题是硬编码的my-ip。Selenium 网格和节点在不同的机器/各自的 ips 上运行,实习生的配置文件将与所有构建和测试环境一起签入。
如果我将 proxyUrl 留在本地主机上,硒节点将无法加载实习生测试的数据。
因此,对于所有开发人员测试,my-ip 将有所不同。我真的不希望每个人都将自己的 ip 输入到实习生配置中并意外签入配置,也不希望签入模板文件以供所有人更改。
不要误会我的意思。设置工作得很好,但必须输入硬编码的本地 ip,我个人认为这是气味。
也许它很容易参数化proxyURL,但我找不到任何资源:(
问候,
流卡普
unit-testing - 使用 dojo 1.7.2 项目的实习单元测试用例
按照实习生模块的教程并安装了 ie npm install intern --save-dev
。
将实习生节点模块复制到项目工作区,以便使用基于浏览器的实习生测试。
复制 node 模块中提供的测试 html 页面并设置包的路径,如上所述。
根据教程为其创建了测试小部件和测试用例。
最后用测试 html 页面对其进行了测试,但是由于我为包指定了 dojo 版本 1.7.2,因此存在类加载器问题。
如果尝试使用 1.9.1,它可以工作。实际的错误是它需要 1.7.2 版本不存在的模块,例如 dojo/promise。
我被这个版本冲突困住了,需要知道实习生是否与 Dojo 1.7.2 兼容。
否则有没有办法为旧版本的 Dojo 编写实习生测试用例?
帮忙看看这个!
intern - 未加载文件的覆盖率
对于测试期间未加载的文件,如何获得基本上 0% 的覆盖率报告。此功能可以帮助我识别我忘记为其编写测试的文件
intern - 实习生承诺超时
我正在与实习生一起编写一些功能测试,并遇到了以下文本部分...
“如果在测试超时(默认为 30 秒;设置 this.timeout 以更改值)内未履行承诺,测试也会失败。”
在...
https://github.com/theintern/intern/wiki/Writing-Tests-with-Intern#asynchronous-testing
如何设置功能测试的承诺超时?我试过直接在 promise 上调用 timeout() ,但这不是一个有效的方法。
我已经设置了各种 WD 超时(页面加载超时、隐式等待等),但我遇到了 promise 超时的问题。
intern - 通过 Selenium 运行测试时在 Intern 目录之外加载依赖项
我有一个项目,实习生单元测试应该位于与被测源代码不同的目录树中。有点像这样:
在 Intern 配置文件中,我定义了一个 AMD 包,它使用相对路径../
从src
单元测试套件中访问。这是一个示例配置:
和一个匹配的单元测试套件
当直接在浏览器 (client.html) 或节点 (client.js) 中测试时,这可以正常工作。但是,当通过 Selenium 服务器(使用 runner.js)启动时,在由 Selenium 启动的浏览器中运行的 client.html 找不到外部依赖项。在上面的示例中,它尝试请求 ExternalDep at http://localhost:9000/__intern/src/ExternalDep.js
,这是一个 404,因为该src
目录不在实习生中。
我想如果我将 intern.js 放在测试和源代码的最高公共超级目录中,它会起作用。但是我们的项目目前的设置方式使其不切实际。有没有办法配置超出实习生配置文件位置的源,或者我只是犯了一个愚蠢的错误?
谢谢!
functional-testing - 参加实习生功能测试
我的问题是如何在功能测试中设置断点?实习生可以吗?我在 WebDriver 上本地运行测试用例,并拥有“调试器”;断点将简化我的测试用例开发。
execute(function () { debugger; }) 应该在浏览器中运行并作用于 'debugger;' 在其中,但它不会停止执行...
google-chrome - 从命令行启动 Chrome 仿真
我使用 Google Chrome 和 Intern 运行自动化测试,我想知道是否有办法从 CLI 以仿真模式启动 Chrome 或使用特定标志来测试移动渲染。如果没有,您知道一个好的解决方法吗?
我可以直接将 Android 模拟器(来自 Android SDK)与 Selenium Webdriver apk 或移动 Chrome 一起使用,但测试大部分时间都会崩溃,模拟器没有响应,我必须重新启动它。此外,我需要在尽可能大的范围内进行测试,而不仅限于 Android 设备。桌面版 Chrome 更加稳定,即使测试失败,chrome 也会始终响应并且可以由 Intern 自动关闭。
我尝试了使用“--enable-touch-events”标志和自定义 userAgent 的解决方法,但它会产生奇怪的行为。也许其他一些标志会帮助我?
预先感谢您的回答。