当通过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配置文件,因为它们对修复此问题没有任何影响。
答案 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
的更新版本,之后测试运行正常。