2014-03-07 2 views
0

나는 내 사용자 지정 툴툴 거리는 소리 작업을 테스트하는 nodeunit 시험이 있습니다nodeunit을 사용하여 덜컹 거리는 작업 콜백을 테스트하려면 어떻게합니까?

'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을 바탕으로,하지만 콜백이 실행되지 않습니다 및 테스트 무기한 계속 실행됩니다.

올바른 조건에서 콜백이 확실히 실행된다는 것을 알고 있습니다. 따라서 이것은 내 작업의 버그가 아닙니다.

답변

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입니다. –