如何在运行摩卡testing之前等待一个咕噜的任务完成
简而言之…
我有一些我想要testing的外部configuration的咕噜任务(确保他们做他们应该做的)。 所以我想写一个摩卡testing在before
函数中运行任务,并声明一切顺利。
…和一些细节
在我的gruntfile
有类似的东西
# Load task configs from `grunt` dir. configs = require('load-grunt-configs') grunt, config: src: ['tasks/*{.js,.json,.coffee,.cson}'] # Load all **grunt tasks** with patter `grunt-*` require('load-grunt-tasks') grunt, pattern: [ 'grunt-*' ] # Pass configs to grunt grunt.initConfig configs
并随后进行一些任务注册…
然而,我现在可以访问我的less
任务驻留在我的tasks
文件夹(使用grunt-contrib-less
) less.cson
。
到现在为止还挺好。 🙂
我使用chai
来断言:
describe('Checking static resources for dev', function () { describe('less task', function () { before(function () { grunt.task.run('less'); }); it('should have a compiled css file for docs', function () { grunt.file.isFile('public/css/docs.css').should.be.ok; grunt.file.isFile('public/css/docs.css.map').should.be.ok; });
正如所料,testing运行后,任务完成,因为它不是asynchronous,我不知道一种方式告诉grunt(不修改现有的任务/configuration),它应该调用一个可能的done
function, 然后做出断言。
我也尝试了grunt-run-task
但是无法运行任何任务(他们放弃了超时,尽pipe我给了他们超过20秒的时间来完成)。
猜猜我正在寻找类似的东西
before(function (done) { grunt.task.run('less', done); });
任何人的build议?