grunt-karma在使用共享配置时没有运行spec文件

时间:2014-01-30 21:25:58

标签: unit-testing gruntjs jasmine karma-runner

我创建了一个基本项目,试图让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个测试。

如果有任何我可以发布的信息,请告诉我。

1 个答案:

答案 0 :(得分:3)

我对grunt-karma的理解是不正确的。

我以为我可以在karma.conf.js文件中包含基本文件和源文件。然后在每个模块中,我只需添加该模块所需的特定文件并进行测试。

它实际工作的方式是每个模块中声明的文件完全覆盖karma.conf.js文件中的files属性。不附加给他们。

我最终在Gruntfile.js中创建了一个包含所有源.js文件的数组,并在每个模块中将必要的文件连接到它。