2015-04-01 92 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'] 

,并把它添加到您的框架