angularjs - karma : 'require' is not defined

标签 angularjs karma-jasmine chai

我的 Angular 测试环境运行得很好,直到一周前,每当我尝试运行 karma 时,我就开始收到此错误:

Chrome 53.0.2785 (Linux 0.0.0) ERROR
  Uncaught ReferenceError: require is not defined
  at node_modules/chai-as-promised/lib/chai-as-promised.js:2

此错误首先发生在 CI 平台中。当我清理并重新安装应用程序的所有依赖项时,它才开始在我的本地环境中发生,因此我可以得出结论,某些依赖项已更新,但现在缺少某些内容。

我发现类似的问题,建议将额外的依赖项(例如 requirejsbrowserify)添加到节点依赖项列表以及 karma 配置文件中,但他们没有帮助。

还有什么可能导致此错误?我已将以下插件加载到 karma:

    plugins: [
        'karma-jasmine',
        'karma-mocha',
        'karma-chrome-launcher',
        'karma-chai',
        'karma-chai-as-promised',
        'karma-jquery-chai',
        'karma-mocha',
        'karma-coverage',
        'karma-ng-html2js-preprocessor',
        'karma-ng-json2js-preprocessor',
        'karma-sinon',
        'karma-sinon-chai'
    ]

最佳答案

问题在于 chai-as-promised 6.0 dropped support for SystemJS ,因此 karma-chai-as-promised 拉动 chai-as-promised 的方式不再有效。

我最终删除了 karma-chai-as-promised 并在公共(public)测试初始化​​文件中手动连接了 chai-as-promised:chai.use(chai-as-promised) .

关于angularjs - karma : 'require' is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918861/

相关文章:

javascript - 如何在angularjs中获取响应数组值的asc顺序

Angularjs ng-model 两个选择标签之间的复杂链接

node.js - 如何使用 mocha 和 chai 在测试之间正确关闭快速服务器

Angular 6 从 IntelliJ 运行 karma 测试

unit-testing - 使用 jQuery-Chai 测试元素

javascript - 测试失败 - ProductService 不是构造函数

javascript - 刷新页面之前调用函数

angularjs - Angular $ watch空值错误

node.js - Karma-jasmine 未安装

angular - 基础服务测试