我有一个节点测试,可以测试我的自定义grunt任务:
'use strict';
var grunt = require('grunt');
exports.when_executing_single_command = {
it_should_execute_successfully: function(test) {
test.expect(1);
grunt.initConfig({
mytask: {
success: function(data) {
test.strictEqual(data, '1');
test.done();
}
}
});
require('../src/mytask')(grunt);
grunt.registerTask('default', ['mytask']);
grunt.task.run('default');
}
};
基于节点文档,测试似乎是正确设置的,但是从未执行回调,并且测试继续无限期运行。
我知道在正确的条件下肯定执行回调,因此这不是我任务的错误。
在这里完全相同。
在我看来,咕unt是排队的任务调用。因此,如果您使用Grunt nodeunit命令启动测试,则无法在测试中启动另一个任务,它将被排队,并且只能在完成节点任务后运行。
有一个解决方案,但它不适合我的情况,它可能适用于您:
grunt.util.spawn({
grunt: true,
args: ["your_task_name"],
opts:{
stdio: 'inherit'
}
}, function(){
// Do something
})
grunt.util.spawn