我创建了一个基本项目,试图让Gruntjs,Karma和Jasmine一起玩。当我使用所有必要文件设置karma.conf.js文件时,一切正常并且测试通过。
当我试图将它们分散在Grunt中时,我遇到了问题。
Gruntfile.js
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
karma: {
options: {
configFile: 'karma.conf.js'
},
basicController: {
files: ['/basicController/scBasicControllerCtrl.js', '/basicController/test/ControllersSpec.js']
},
overworkedController: {
src: ['overworkedController/scOverworkedControllerCtrl.js', 'overworkedController/test/ControllersSpec.js']
}
}
});
grunt-karma的文档显示在拆分模块时使用“files:”。我在basicController模块下做了这个,当我尝试运行$ grunt karma:basicController --verbose时,我收到错误说
Warning: Cannot use 'in' operator to search for 'src' in /basicController/scBasicControllerCtrl.js Use --force to continue
Aborted due to warnings.
当我运行$ grunt karma:overworkedControllers --verbose(使用“src”而不是“files”时,看起来一切都会起作用并且Chrome浏览器启动但是后来说它执行0 0错误。< / p>
应该有3个测试。
如果有任何我可以发布的信息,请告诉我。
答案 0 :(得分:3)
我对grunt-karma的理解是不正确的。
我以为我可以在karma.conf.js文件中包含基本文件和源文件。然后在每个模块中,我只需添加该模块所需的特定文件并进行测试。
它实际工作的方式是每个模块中声明的文件完全覆盖karma.conf.js文件中的files属性。不附加给他们。
我最终在Gruntfile.js中创建了一个包含所有源.js文件的数组,并在每个模块中将必要的文件连接到它。