0

我是实习生的新手,并试图弄清楚如何为我们的项目配置它。我们的文件层次结构与 github 上实习生教程或自述文件中的示例并不完全相同。我认为我正确指定了包位置,因为它不会抱怨找不到测试模块。它甚至似乎运行了我设置的测试,但它随后尝试在我的包模块中定义的其余模块上运行测试。它首先尝试加载 .../dojo/_base/declare.js。所以我尝试指定 excludeInstrumentation 属性值。

我将其指定为:

excludeInstrumentation: /^(?:dojo|dijit|dgrid|tests)\//

但它并不排除它。我的目标模块在定义中有这个:

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/...(注意在路径中添加了库)。

我忘记在配置文件 intern.js 中添加我的 loader 属性:

loader: {
    //baseUrl: '..',
    packages: [
        { name: 'intern', location: 'node_modules/intern' },
        { name: 'ev', location: 'web/libs/ev' }
    ]
},

关于为什么不排除正则表达式的任何想法?

4

1 回答 1

2
  1. 不要将实习生包放在加载程序配置中。仅将特定于应用程序的配置放在加载程序配置中。
  2. excludeInstrumentation只是为了防止您的脚本在通过实习生代理时被代码覆盖率数据修改。它不会改变加载程序的工作方式,也不会阻止您的 AMD 依赖项被正常请求和加载。
  3. 如果您的应用程序使用不直接在 中的 3rd 方包(dojo、dijit 等)baseUrl,您需要确保在 中配置它们packages,就像在运行实际应用程序时需要配置它们一样。
于 2013-06-21T23:41:57.313 回答