2015-04-01 90 views
0

我有麻煩試圖想什麼時候開始因緣找出這個錯誤的原因:噶單元測試

bash-3.2$ NODE_ENV=test karma start 
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser PhantomJS 
INFO [PhantomJS 1.9.8 (Mac OS X)]: Connected on socket FONtQ1oNxIxRecRxYgnS with id 73511945 
PhantomJS 1.9.8 (Mac OS X) ERROR 
ReferenceError: Can't find variable: require 
at /public/components/angular-cookies/index.js:1 

的index.js文件包含:

require('./angular-cookies'); 
module.exports = 'ngCookies'; 

請幫幫忙! !

+0

你可以發佈你的人緣配置文件?它看起來像缺少一些東西... – MarcoL 2015-04-02 09:12:07

回答

5

一種方法解決這個問題是npm install karma-browserify --save-dev。這應該有效,如果您需要的實際文件使用需要,您將不得不這樣做。

index.js不是您需要的實際文件。 angular-cookies.js是。

我發現使用browserify會使得調試測試錯誤變得更加困難,因爲您從業力中獲得的堆棧跟蹤將引用臨時.browserify包中的行號,這些臨時.browserify包在測試完成時已經被刪除。

一個簡單的解決方案是將files指向karma.conf.js直接指向angular-cookies.js而不是使用通配符。這樣,index.js及其使用要求不會造成不必要的問題。

0

嘗試增加browserify作爲

preprocessor: 
'test/**/*.js': ['browserify'] 

,並把它添加到您的框架