在Windows上使用karma-browserify"无法找到模块"错误

J. *_*rsh 6 node.js jasmine angularjs browserify karma-runner

我正在尝试使用Karma,Karma-Jasmine和Karma-Browserify在Angular/Browserify项目上设置单元测试.我在Windows机器上,供参考.karma-cli是我的全球NPM路径上,并且karma,karma-jasmine,karma-browserify,和browserify都是本地NPM安装,使用-D.

我正在尝试引入一个spec文件,看起来像:

var PhoneListCtrl = require('../../../public/js/app/controllers/phone-list');

describe('PhoneListCtrl', function() {
    var scope,
    ctrl;

    beforeEach(function() {
        scope = {};
        ctrl = new PhoneListCtrl(scope);
    });

    it('should create "phones" model with 3 phones', function() {
        expect(scope).not.toBe(undefined);
    });
});
Run Code Online (Sandbox Code Playgroud)

我每次都会收到以下错误:

Uncaught Error: Cannot find module 'Cc/gGH'
Run Code Online (Sandbox Code Playgroud)

克隆下面的repos,安装karma和所有插件,并尝试运行他们的示例测试套件后,我得到了完全相同的错误:

https://github.com/xdissent/karma-browserify
https://github.com/waye929/angular-browserify

我究竟做错了什么?正确找到了测试规范模块,并且业力似乎正在寻找所有必要的插件/预处理器,但似乎karma-browserify require每次都会在规范中对语句进行绊倒,原因我无法理解.

我已经多次卸载并重新安装业力和所有相关插件,但无济于事.

Ale*_*hes 5

我设法找到了解决方案.该问题是由karma-browserify自己的模块名称哈希函数引起的,该函数与较新版本的版本不兼容browserify.有一个fork使用browserify散列函数来处理它:

https://github.com/voidlock/karma-browserify/commit/3afe3b7485f2e4723bba5ad1c5a730d560b8c234

有拉动请求待定,但在此期间你可以通过放置使用fork

"karma-browserify": "https://github.com/voidlock/karma-browserify/tarball/use-browserify-hash-function"

在您的package.json(dev)依赖项部分中.

  • 注意 - 此PR已关闭,此*应该*不再是最新的karma-browserify问题https://github.com/xdissent/karma-browserify/pull/31 (5认同)