我一直在更改我的组织的底层基础设施,以将我们的自动化测试从使用单独的 Web 服务器在浏览器客户端中运行切换到在测试运行程序(实习运行程序)中运行。在测试运行器环境中,一切进展顺利——我解决了很多问题,但随后繁荣起来!有人删除了一个新的单元测试,它在浏览器客户端中运行得很好,但是当我使用测试运行程序运行它时,我收到此错误:
!类型错误:deps.map 不是一个函数http://9.77.140.51:9000/__intern/node_modules/dojo/dojo.js:678 http://9.77.140.51:9000/__intern/node_modules/dojo/dojo.js:678
dojo.js 中的第 678 行是这样的:
resolveDeps = function (deps, module, referenceModule) {
// resolve deps with respect to this module
return deps.map(function (dep, i) { // <-- Line 678!
var result = getModule(dep, referenceModule);
if (result.fix) {
result.fix = function (m) {
module.deps[i] = m;
};
}
return result;
});
},
我根本没有改变这个文件。我不知道resolveDeps()函数的作用是什么,也不知道“deps”是什么。
我没有看到这个新测试有什么不寻常的地方,与其他数百个通过得很好的测试相比,没有什么特别的地方(但是,我没有写它)。浏览器客户端未报告任何错误。当使用测试运行器运行时,打开开发人员工具查看控制台不会提供任何有意义的信息,因为 TypeError 似乎杀死了 HTTP 代理服务器,而浏览器控制台只显示一堆 404,这看起来像是转移注意力,因为服务器被阻止了。
有人有任何线索吗?
这可能是由于测试模块格式不正确造成的,尽管在没有更多信息的情况下很难说。该错误发生在加载器的依赖解析代码中,该代码的作用是define
and require
声明。道场的define
函数理解 4 个参数配置:
define(id, deps, callback)
define(deps, callback)
define(callback)
define(object)
(id
是一个字符串并且deps
是一个数组。)如果由于某种原因你有一个使用以下格式的模块define(id, callback)
,您会收到所看到的错误,因为加载程序中的依赖项解析代码期望第一个或第二个参数是数组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)