2014-03-07 60 views
0

我有我的測試自定義咕嚕任務nodeunit測試:如何使用nodeunit測試grunt任務回調?

基於 nodeunit documentation
'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'); 
    } 
}; 

測試似乎正確地設置,但永遠不會執行回調並測試繼續無限期地運行。

我知道在正確的條件下回調是肯定執行的,所以這不是我的任務中的錯誤。

回答

1

在這裏完全相同的問題。

在我看來,咕嚕是排隊任務調用。因此,如果使用grunt nodeunit命令啓動測試,則無法在測試中啓動另一個任務,它將排隊並且只能在完成nodeunit任務後運行。

有一個解決方案,但它不適合我的情況,它可能爲你申請:

grunt.util.spawn({ 
    grunt: true, 
    args: ["your_task_name"], 
    opts:{ 
     stdio: 'inherit' 
    } 
}, function(){ 
    // Do something 
}) 

grunt.util.spawn

+0

感謝J2AN。目前無法測試我的解決方案(我正在度假),但+1發佈您的答案:-) –

相關問題