通过Grunt运行我们的Karma测试时,执行失败并出现以下错误:
[2013-12-30 10:14:22.690] [ERROR] config - Invalid config file! [ReferenceError: module is not defined]
Karma配置Gruntfile.js
看起来很清晰,我从另一个项目复制它,它工作得很好.对于该karma.conf.js
文件,它与其他项目之间没有区别,它可以正常工作.
我已经看过这个问题,但它没有帮助解决问题:Angular返回模块中的测试服务没有定义
我没有粘贴Grunt或Karma配置文件,因为它们对修复此问题没有任何影响.
这个问题的解决方案在这里找到: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
,之后测试运行正常.