我有一个nodeunit测试来测试我的自定义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');
}
};
基于nodeunit documentation,测试似乎设置正确,但回调永远不会执行,测试会继续无限期运行。
我知道在正确的条件下回调肯定会被执行,所以这不是我任务中的错误。
答案 0 :(得分:1)
这里完全相同的问题。
在我看来,grunt正在排队任务调用。因此,如果使用grunt nodeunit命令启动测试,则无法在测试中启动其他任务,它将排队并且只能在完成nodeunit任务后运行。
有一个解决方案,但它不适合我的情况,它可能适用于你:
grunt.util.spawn({
grunt: true,
args: ["your_task_name"],
opts:{
stdio: 'inherit'
}
}, function(){
// Do something
})