Karma单元测试

0 node.js karma-runner

在尝试开始业力时,我无法弄清楚这个错误的原因:

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
Run Code Online (Sandbox Code Playgroud)

index.js文件包含:

require('./angular-cookies');
module.exports = 'ngCookies';
Run Code Online (Sandbox Code Playgroud)

请帮忙!!

las*_*ood 5

解决这个问题的一种方法是npm install karma-browserify --save-dev.这应该工作,你将不得不这样做,如果实际的文件,你需要使用需要.

index.js不是您需要的实际文件.angular-cookies.js是.

我发现使用browserify会使调试测试错误变得更加困难,因为从业力中获得的堆栈跟踪将引用临时.browserify包中的行号,这些包已经在测试完成时被删除.

一个简单的解决方案是指向fileskarma.conf.js直接angular-cookies.js使用通配符代替.这样一来,index.js和它的使用要求不会造成不必要的问题.