angularjs - Grunt + Karma 测试运行程序失败并显示 "ReferenceError: module is not defined"

标签 angularjs gruntjs karma-runner

通过 Grunt 运行 Karma 测试时,执行失败并出现以下错误:

[2013-12-30 10:14:22.690] [ERROR] config - Invalid config file!
[ReferenceError: module is not defined]

Gruntfile.js 中的 Karma 配置看起来很正常,我从另一个项目复制了它,它运行得很好。对于 karma.conf.js 文件也是如此,与其他项目没有什么区别,它工作得很好。

我已经查看了这个问题,但它对解决问题没有帮助:Testing service in Angular returns module is not defined

我不会粘贴 Grunt 或 Karma 配置文件,因为它们对解决此问题没有任何影响。

最佳答案

此问题的解决方案可在此处找到:https://github.com/karma-runner/grunt-karma/issues/52

基本上,旧版本的grunt-karma模块被用作开发依赖项,在本例中它是版本0.4.3> - 这是 package.json 文件中的一个片段:

{
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-uglify": "~0.2.5",
    "grunt-karma": "~0.4.3",
    "matchdep": "~0.1.2",
    "karma": "~0.10.2",
    "karma-coverage": "~0.1.0",
    "karma-script-launcher": "~0.1.0",
    "karma-firefox-launcher": "~0.1.0",
    "karma-chrome-launcher": "~0.1.0",
    "karma-html2js-preprocessor": "~0.1.0",
    "karma-jasmine": "~0.1.3",
    "karma-requirejs": "~0.1.0",
    "karma-coffee-preprocessor": "~0.1.0",
    "karma-phantomjs-launcher": "~0.1.0",
    "karma-junit-reporter": "~0.1.0"
  },

  // ...
}

显然,这个旧版本的grunt-karma导致了模块未定义错误。

更新它以使用更新的版本(0.6.2,我们在另一个运行良好的项目中使用它)解决了这个问题:

"grunt-karma": "~0.6.2"

然后在项目目录中运行npm install下载了grunt-karma的更新版本,之后测试运行良好。

关于angularjs - Grunt + Karma 测试运行程序失败并显示 "ReferenceError: module is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20837584/

相关文章:

javascript - 使用 Grunt.js 运行 mocha 测试

javascript - jquery-ui 分发文件

javascript - 在 Angular 单元测试中应该如何处理运行 block ?

css - 进度条的 Angular 动态宽度在 IE11 中不起作用

angularjs - 使用 Angular UI Bootstrap 在动态创建的选项卡上设置事件选项卡

javascript - 使用 Promise.catch 时,Angular、Binding 不起作用

javascript - Angular.js 和 WebApi 返回 int 数组

ssl - 使用 grunt 服务器运行 SSL 时出错

angular - 为什么我的单元测试在 Chrome 中通过而在 PhantomJS 中失败?

node.js - 无法在 Ubuntu 中安装 karma