2013-06-21 71 views
0

我是實習生新手,想弄清楚如何爲我們的項目配置它。我們的文件層次結構與intern-tutorial中的示例或github上的intern實例不完全相同。我想我已經正確指定了封裝位置,因爲它不會抱怨找不到測試模塊。它甚至似乎運行我已設置的測試,但它然後嘗試運行我的包模塊中定義的其他模塊的測試目標。它首先嚐試加載.../dojo/_base/declare.js。所以我試圖指定excludeInstrumentation屬性值。實習生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) 

我要指出的是,道場,dijit的和dgrid包實際上位於: /家庭/ bholm/Projects/src/sandbox/libs/dojo/...(注意路徑中添加了libs)。

我忘了補充我的裝載機屬性在配置文件中intern.js:

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

爲什麼正則表達式是不排除任何想法?

回答

2
  1. 請勿將內部軟件包放入裝載程序配置中。只在應用程序配置中加入應用程序特定的配置。
  2. excludeInstrumentation只是爲了防止您的腳本在通過實習代理時通過代碼覆蓋率數據進行修改。它不會改變加載程序的工作方式,也不會阻止您正常請求和加載AMD依賴項。
  3. 如果您的應用程序使用不直接在baseUrl之內的第三方軟件包(dojo,dijit等),則需要確保它們在packages中配置,就像在運行實際應用程序時需要配置它們一樣。
+0

要添加到@ csnover的答案,由Intern使用的加載器拋出錯誤,因爲它找不到'dojo'包。此錯誤不是由於測試正在模塊依賴性上運行的事實。 – bitpshr

+0

謝謝!我添加了包(dojo,dijit,dgrid等),現在我得到一個新的錯誤: 'node node_modules/intern/client.js config = tests/intern 默認爲「console」記者 ReferenceError:document未定義爲 位於/home/bholm/Projects/src/sandbox/web/libs/dojo/selector/_loader.js:5:15 位於execModule(/ home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:512:54) at /home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:579:7 ...' 什麼「文件「它是指? – teaman

+0

在檢查該文件時,文檔顯示爲全局DOM文檔。爲什麼不能定義?這個配置中缺少一些東西。 – teaman