Grunt + Karma测试运行器因“ReferenceError:模块未定义”而失败

时间:2013-12-30 10:24:57

标签: 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配置文件,因为它们对修复此问题没有任何影响。

1 个答案:

答案 0 :(得分:5)

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

基本上,grunt-karma模块的旧版本用作 dev依赖,在这种情况下它是版本 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的旧版本导致module is not defined错误。

更新此版本以使用更新版本( 0.6.2 ,我们在另一个工作正常的项目中使用它)解决了这个问题:

"grunt-karma": "~0.6.2"

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