2015-01-07 3 views
2

У меня есть модуль узла, над которым я работаю, и я хочу написать для него единичные тесты, однако я смущен тем, как передать аргументы (необходимые для CLI) на узел через набор тестов.Тестирование узла узла CLI

Давайте предположим, что (для краткости) имя модуля J, так что я бы назвал это как ...

$ j --file test.js --file test2.js 

как я воссоздать те --file звонки, когда я пишу свой Testing Suite?

ответ

1

Вы можете использовать модуль узла child process для запуска дополнительных процессов в командной строке. This link может предоставить вам больше информации о синтаксисе; Я рекомендую также проверить promised version дочернего процесса.

var spawn = require('child-process').spawn; 

spawn('j', ['--file', 'test.js', '--file', 'test2.js']) 
    .progress(function(childProcess){ 
    // any logic you want to do here while process is running 
    }) 
    .then(function(result){ 
    // command was executed 
    // write tests here 
    }) 
    .fail(function(err){ 
    // maybe 1 last test to make sure there was no test 
    }); 

Что касается модульного тестирования люкс, я ожидал что-нибудь Комфортные с будет работать (мокко/чай и т.д.)

Смежные вопросы