1
我是實習生新手,努力嘗試在我的環境中運行一個簡單的測試。我能夠讓教程測試運行,但我試圖設置測試文件位於我的應用程序目錄層次結構內的測試。該模塊被測試位置爲:爲什麼我的實習生測試失敗,「文檔沒有定義」
sandbox/web/libs/ev/grids/FilterGrid.js
測試文件位於:
sandbox/web/libs/ev/tests/FilterGrid.js
我的實習生配置文件位於:
sandbox/tests/intern.js
我的裝載機和套房對象容貌像這樣:
loader: {
packages: [
{ name: 'dojo', location: 'web/libs/dojo' },
{ name: 'dijit', location: 'web/libs/dijit },
{ name: 'dgrid', location: 'web/libs/dgrid' },
{ name: 'put-selector', location: 'web/libs/put-selector' },
{ name: 'xstyle', location: 'web/libs/xstyle' },
{ name: 'ev', location: 'web/libs/ev' }
]
},
suites: ['ev/tests/FilterGrid'],
當加載器試圖加載時,我得到:
Defaulting to "console" reporter
ReferenceError: document is not defined
at /home/bholm/Projects/src/sandbox/web/libs/dojo/selector/_loader.js:5:15
at execModule (/home/bholm/Projects/src/sandbox/node_modules/intern/node_module
/dojo/dojo.js:512:54)
at /home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:579:7
at guardCheckComplete (/home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:563:4)
at checkComplete (/home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:571:27)
at onLoadCallback (/home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:653:7)
at /home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:746:5
at fs.js:266:14
at Object.oncomplete (fs.js:107:15)
單元測試使用Intern是否需要一個DOM文檔定義? 我還注意到,實習生列出了dojo2_core,因爲它是依賴性的。所以它使用未發佈的代碼?
任何幫助,將不勝感激!
這有助於!但是有一條信息缺失。 node_modules目錄是否必須位於Web根目錄中?似乎它會在瀏覽器中運行client.html。我們不需要node.js等在web根目錄中,所以我們有node_modules dir作爲web根目錄的同級(web在我上面的例子中)。 如果答案是否定的,那麼配置如何設置爲使用web根目錄外的node_modules運行瀏覽器測試? – teaman
簡短的回答是「是」。較長的答案是「不,如果您使用跑步者,但跑步者將始終使用從Intern安裝的任何位置開始的兩個路徑作爲目錄服務的目錄,因此它與將其安裝到Web根目錄中的效果相同」。 –
我認爲這會有幫助,然後知道什麼是關鍵文件/目錄的位置關係。 「關鍵」的含義是web根目錄vs intern.js(配置文件)與正在測試的模塊與單元測試文件。這是什麼靈活性?什麼「有」是在哪裏,什麼可以移動,並在配置中設置映射路徑。說起來,配置文件intern.js中的映射屬性沒有很好的定義或示例,恕我直言。只是試圖瞭解靈活的實習生是多麼的靈活,爲什麼在層次結構中看起來如此僵化。 – teaman