我是Intern的新手,并试图弄清楚如何为我们的项目配置它。我们的文件层次结构与github上实习生的实习教程或自述文件中的示例不完全相同。我认为我已经正确指定了包位置,因为它没有抱怨没有找到测试模块。它甚至似乎运行我已经设置的测试,但它然后尝试在我的包模块中定义的其余模块上运行测试。它首先尝试加载... / dojo / _base / declare.js。所以我尝试指定excludeInstrumentation属性值。
我将其指定为:
excludeInstrumentation: /^(?:dojo|dijit|dgrid|tests)\//
但不排除它。我的目标模块在define中有这个:
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/dom-construct',
'dojo/on',
'dojo/query',
...
'dijit/layout/BorderContainer',
'dijit/layout/ContentPane',
'dijit/form/TextBox',
...
'dgrid/OnDemandGrid',
'dgrid/Keyboard',
...
但我得到错误:
node node_modules/intern/client.js config=tests/intern
Defaulting to "console" reporter
Error: Failed to load module dojo/_base/declare from
/home/bholm/Projects/src/sandbox/dojo/_base/declare.js
(parent: ev/grids/FilterGrid)
at /home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:742:12
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)
我应该注意,dojo,dijit和dgrid包实际上位于: / home / bholm / Projects / src / sandbox / libs / dojo / ...(注意路径中添加了libs。)
我忘了在配置文件intern.js中添加我的loader属性:
loader: {
//baseUrl: '..',
packages: [
{ name: 'intern', location: 'node_modules/intern' },
{ name: 'ev', location: 'web/libs/ev' }
]
},
关于为什么正则表达式不被排除的任何想法?
答案 0 :(得分:2)
excludeInstrumentation
仅用于防止在通过Intern代理传递脚本时使用代码覆盖率数据修改脚本。它不会改变加载器的工作方式,也不会阻止您的AMD依赖项被正常请求和加载。baseUrl
范围内的第三方软件包(dojo,dijit等),则需要确保它们在packages
中配置,就像它们需要一样在运行实际应用程序时进行配置。