如何在运行mocha测试之前等待grunt任务完成

时间:2014-06-17 06:02:49

标签: javascript node.js asynchronous gruntjs mocha

简而言之......

我有一些我想测试的外部配置的笨拙任务(确保他们做他们应该做的事情)。因此,我想编写一个运行before函数中的任务的mocha测试,并断言一切顺利。

...以及一些细节

在我的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 less.csontasks任务grunt-contrib-less (使用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; }); 进行断言:

done

正如预期的那样,任务在测试运行后完成,因为它不是异步的,我也不知道如何告诉grunt(不修改现有的任务/配置)应该调用它grunt-run-task功能准备就绪,然后进行断言。

我也试过了before(function (done) { grunt.task.run('less', done); }); 但是无法设法运行任何任务(虽然我给了他们20秒以上的时间,但是他们中断了超时)。

猜猜我正在寻找像

这样的东西
{{1}}

有人有什么建议吗?

0 个答案:

没有答案