Javascript 使用依赖于窗口的外部库运行intern runner失败。ReferenceError:未定义窗口
我一直在努力使Intern与另一个名为Pact的图书馆同时工作,用于合同测试。我的虚拟测试如下所示:Javascript 使用依赖于窗口的外部库运行intern runner失败。ReferenceError:未定义窗口,javascript,intern,Javascript,Intern,我一直在努力使Intern与另一个名为Pact的图书馆同时工作,用于合同测试。我的虚拟测试如下所示: define([ 'intern!object', 'intern/chai!expect', 'bower_components/pact-consumer-js-dsl/dist/pact-consumer-js-dsl.js' ], function(registerSuite, expect) { registerSuite({ name: 'Test',
define([
'intern!object',
'intern/chai!expect',
'bower_components/pact-consumer-js-dsl/dist/pact-consumer-js-dsl.js'
], function(registerSuite, expect) {
registerSuite({
name: 'Test',
'login form': function() {
var _this = this;
return this.remote
.get(loginUrl)
...
.end();
}
});
});
define({
proxyPort: 9999,
proxyUrl: 'http://localhost:9999/',
capabilities: {
'selenium-version': '2.45.0'
},
environments: [
{ browserName: 'chrome' }
],
tunnel: 'NullTunnel',
maxConcurrency: 3,
functionalSuites: ['test/intern/integration/login'],
excludeInstrumentation: /^tests|bower_components|node_modules\//
});
问题是,如果我尝试运行包含Pact库(第4行)的测试,Intern会显示一个错误,因为没有定义window
警告:引用错误:未定义窗口
如果我删除了库的包含,测试将正确运行,打开浏览器,它将完成它应该做的一切。我已经以functionalSuite
的形式运行了它,并且我使用的是intern runner
而不是客户端。我尝试使用Chrome或PhantomJS,但运气不佳
这不仅仅是Pact库的问题,似乎每次我尝试使用同样使用窗口
或文档
(例如使用jQuery,它找不到文档
)的其他东西时都会发生这种情况
我的实习生配置如下所示:
define([
'intern!object',
'intern/chai!expect',
'bower_components/pact-consumer-js-dsl/dist/pact-consumer-js-dsl.js'
], function(registerSuite, expect) {
registerSuite({
name: 'Test',
'login form': function() {
var _this = this;
return this.remote
.get(loginUrl)
...
.end();
}
});
});
define({
proxyPort: 9999,
proxyUrl: 'http://localhost:9999/',
capabilities: {
'selenium-version': '2.45.0'
},
environments: [
{ browserName: 'chrome' }
],
tunnel: 'NullTunnel',
maxConcurrency: 3,
functionalSuites: ['test/intern/integration/login'],
excludeInstrumentation: /^tests|bower_components|node_modules\//
});
如果有人知道这方面的解决方案,我将非常感激:)您使用Pact库的确切目的是什么?功能测试套件本身不在浏览器上下文中运行,而是在节点中运行。加载到每个远程环境中的页面实际上是在浏览器上下文中加载的,并且可以访问DOM。这似乎就是问题所在。。。这两种情况。我们希望使用Pact在前端和后端之间签订合同,我们希望在功能测试中使用Pact来一举两得,因为我们希望在功能测试中使用模拟后端,而不是真正的后端。然后我们有一个不同的问题,那就是。。。我们如何在Intern的功能测试中模拟后端?如果Pact库不支持Node.js(
窗口未定义
),您打算如何在后端使用它?