我刚刚从头开始重新安装节点。我还安装了yeoman
,generator-angular
和karma
。
使用yo angular
生成项目后,我可以成功grunt serve
。但是,每当我尝试grunt test
时,都会抛出以下错误:
karma.conf.js does not exist
但是,karma.conf.js
确实存在于生成的测试目录中。为什么会这样?
答案 0 :(得分:11)
Gruntfile.js指的是root-dir中的karma.conf.js。 Angular生成器将它放在test-directory中,因此您需要更新Gruntfile.js
// Test settings
karma: {
unit: {
configFile: 'test/karma.conf.js',
singleRun: true
}
}
使用此生成的karma.conf.js运行grunt测试时也存在问题。它会说
test/karma.conf.js:63
colors: true,
^^^^^^
ERROR [config]: Invalid config file!
SyntaxError: Unexpected identifier
原因:在< unitRun:false'。
之后,逗号丢失了答案 1 :(得分:1)
我也有这个问题,但我使用的是CoffeeScript。原来,karma.conf.js的CoffeeScript没有被创建。 karma.conf.coffee已正确放置在测试文件夹中,但它没有被编译。所以在我的gruntfile中(在咖啡任务下)我替换了这个......
test: {
files: [{
expand: true,
cwd: 'test/spec',
src: '{,*/}*.coffee',
dest: '.tmp/spec',
ext: '.js'
}]
}
有了......
test: {
files: [{
expand: true,
cwd: 'test/spec',
src: '{,*/}*.coffee',
dest: '.tmp/spec',
ext: '.js'
},
{
expand: true,
cwd: 'test',
src: 'karma.conf.coffee',
dest: 'test',
ext: '.conf.js'
}]
}
我所做的只是确保在测试目录中编译了karma.conf.coffee。
这有效但我仍然遇到错误,因为在karma.conf.coffee中,有些文件的扩展名不正确(' cs'而不是'咖啡')特别是。
'app/scripts/**/*.cs'
'test/mock/**/*.cs'
'test/spec/**/*.cs'
我刚刚将扩展名更改为coffeescript(并删除了模拟文件夹,因为我还没有使用它)。
'app/scripts/**/*.coffee'
'test/spec/**/*.coffee'
之后,构建和测试工作。我是Yeoman的新手,所以我不确定这是否可以轻易避免,但这是我必须做的才能让事情发挥作用。
答案 2 :(得分:0)
就我而言,我甚至找不到karma.conf.js。但是,我意识到你是否
grunt --force
你将能够获得更多信息,你可能会得到内部发生的事情
Running "karma:unit" (karma) task
08 09 2015 13:16:33.928:WARN [plugin]: Cannot find plugin "karma-phantomjs-launcher".
Did you forget to install it ?
npm install karma-phantomjs-launcher --save-dev
08 09 2015 13:16:33.939:WARN [plugin]: Cannot find plugin "karma-jasmine".
Did you forget to install it ?
npm install karma-jasmine --save-dev
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Used --force, continuing.
最后,我能够弄清楚我错过了什么。
希望得到这个帮助。