通过独立浏览器客户端运行的实习生错过了这一点.远程套房
Running The Intern via standalone browser client misses this.remote in suites
此测试代码:
define([
'intern!object',
'intern/chai!assert',
'require'
], function (registerSuite, assert, require) {
registerSuite({
name: 'index',
'greeting form': function () {
return this.remote
.get(require.toUrl('index.html'))
}
});
})
在运行器内完美工作(所有测试通过,selenium日志显示请求正常):
intern-runner config=tests/local.intern.js
但是当我尝试从独立客户端使用它时,在浏览器内通过
http://localhost/intern-tutorial/node_modules/intern/client.html?config=tests/local.intern
出现两个问题:
- 默认情况下只运行单元测试(为什么?)——它们会顺利通过;
- 明确请求功能测试(通过suites=tests/functional/index)返回以下错误:
Error: Cannot call method 'get' of undefined TypeError: Cannot call method 'get' of undefined at Test.registerSuite.greeting form [as test] (http://localhost/intern-tutorial/tests/functional/index.js:20:18) at Test.run (http://localhost/intern-tutorial/node_modules/intern/lib/Test.js:154:19) at http://localhost/intern-tutorial/node_modules/intern/lib/Suite.js:210:13 at signalListener (http://localhost/intern-tutorial/node_modules/intern/node_modules/dojo/Deferred.js:37:21) at Promise.then.promise.then (http://localhost/intern-tutorial/node_modules/intern/node_modules/dojo/Deferred.js:258:5) at http://localhost/intern-tutorial/node_modules/intern/lib/Suite.js:209:46
我从错误日志中假设没有加载WebDriver。因此,Selenium在运行此功能测试期间不接收任何请求。在registerSuite函数中,"this"对象有如下内容:
registerSuite({
name: 'index',
'greeting form': function () {
// assert.strictEqual(this, {});
console.log(JSON.stringify(this));
},
});
{"name":"greeting form","sessionId":null,
"id":"main - index - #greeting form", "timeout":30000, "timeElapsed":null, "hasPassed":false,"error":null} this.remote is missing...
功能测试在Node.js测试运行器中执行。它们不能在独立的浏览器客户端中运行,因为根据定义,它们必须从浏览器沙箱外部驱动浏览器。这就是为什么它们在配置中与单元测试分开定义的原因。
相关文章:
- 我错过了什么让ScrollSpy工作
- 验证启动但不启动't显示故障信息.我错过了什么?MVC 5 Razor
- 无法在单个网页上加载所有谷歌图表;我是不是错过了什么
- 谷歌可视化时间轴图表日期奇怪地休息了一个月…我错过了什么
- 该对象错过了您对模型的引用
- 在fter.js插件工作之前,我错过了什么
- 在将 java 添加到 HTML 时遇到问题,我错过了什么
- 这个正则表达式我错过了什么
- 在 JavaScript 中,条件语句中 OR 运算符的正确语法是什么?我错过了什么
- if 语句中的一部分 JavaScript 代码运行,而同一块中的其余代码不执行.我在这里错过了什么
- (非常简单的递归)我错过了什么
- 如果 JavaScript 错过了 Location.Search,则显示警报消息
- 我正在尝试删除重复项并返回结果.我错过了什么
- Codecademy - 我的代码返回 true,但它说我错过了其他东西
- 无法让插座工作 - 我错过了什么愚蠢的东西
- NodeJs:fs.appendFile 函数似乎错过了最后一个给定的字符串
- 在 for 循环中创建对象.我有点错过了标记
- 我是javascript的新手,我正在从url获取JSON数据,我只能在成功函数中访问数据,我错过了什么
- 安装jQuery-我错过了什么
- 通过独立浏览器客户端运行的实习生错过了这一点.远程套房