开始使用 Grunt 时我一直很开心,但遇到了一种情况,我不知道最好的行动方案是什么。
tl;博士
grunt 可以在不中止任务的情况下发出警告吗?grunt --force 会这样做,但这会将 force 选项应用于所有任务。
问题:在运行包含 jasmine 的任务(来自 grunt-contrib-jasmine)时,如果它找不到包含至少一个单元测试的规范(即it("does stuff, function () {});
),那么它会引发警告并因此中止整个任务。
代码
这是我用来建立我的网站的任务:
grunt.registerTask('build', ['clean', 'sass', 'images', 'favicons', 'lint', 'minify', 'jasmine', 'hashify']);
这是茉莉任务配置:
jasmine: {
testdev: {
src: folders.js.src + '/**/*.js',
options: {
'specs': folders.spec.src + '/*Spec.js',
'helpers': folders.spec.src + '/*Helper.js'
}
},
//etc etc, more targets for minified code testing and istanbul coverage
}
这些是明智的解决方案吗?
选项 1)我可以使用 grunt --force 但我不愿意,因为它会影响我可能希望真正使任务失败的其他进程。
选项 2) 警告但不要失败。Grunt 是否有一个不会中止任务的 STDOUT 警告?
选项 3)我可以分叉插件并将选项“强制”添加到 jasmine 任务中,以便它继续,但仍会将其警告记录到控制台。
选项 4) 如果在运行 jasmine 之前没有找到,Grunt 会创建一个空的虚拟规范。这对我来说似乎有点笨拙。
可能有一个我还没有想到的更好的解决方案。
提前致谢。