2016-07-01 7 views
0

Я работаю над пользовательским генератором-генератором, и я пытаюсь добавить некоторые тесты для подгенератора.Где юмористический тестовый помощник ищет подгенераторы?

Я не могу понять, как использовать yeoman's test helpers для этого. I мог использовать composeWith() для запуска подгенератора рядом с моим основным генератором, но я не могу заставить тестового помощника его распознать.

Кроме того, я получаю некоторые странные расхождения, когда я запускаю генератор из своих тестовых файлов, vs, когда я запускаю его нормально (из командной строки).

в приложение/index.js:

Примечание: Этот код не выполняется, когда работает нормально, и при запуске из моих тестов. Если я изменю код composeWith на this.composeWith('my-generator:sub-generator'), он успешно работает из командной строки, но все равно не работает во время тестирования.

initializing: function() { 
    this.composeWith('sub-generator'); 
}, 

в тестовом файле:

You don't seem to have a generator with the name sub-generator installed. 
You can see available generators with npm search yeoman-generator and then install them with npm install [name]. 
To see the 24 registered generators run yo with the `--help` option. 

При запуске из моих тестов::

before(function (done) { 
    helpers.run(roundhouse) 
    .withGenerators([ 
     [helpers.createDummyGenerator(), '../sub-generator'] 
    ]) 
    .inDir(testDir) 
    .withPrompts(prompts.default) 
    .withOptions({"skipInstall": true}) 
    .on('end', done); 
}); 

Ошибка при работе генератора из командной строки (yo my-generator) производится

Uncaught Error: You don't seem to have a generator with the name sub-generator installed. 
You can see available generators with npm search yeoman-generator and then install them with npm install [name]. 
To see the 2 registered generators run yo with the `--help` option. 

Почему мой тестовый файл не видит других генераторов, которые я установил? Вместо 24 генераторов, он говорит мне, что у меня только 2.

+0

Попробуйте пройти путь, посмотрите на http://yeoman.io/authoring/composability.html settings.local –

+0

Использование '.withGenerators (['../ sub-generator/index.js'])' дает ту же ошибку, но учитывает 1 зарегистрированный генератор вместо 2. Я также пробовал передавать вариации по пути с помощью 'path.join()' и 'path.resolve()', чтобы не повлиять. – Deimyts

ответ

0

Вам необходимо пройти settings.local при вызове composeWith http://yeoman.io/authoring/composability.html

Передача сам путь будет фиксировать большую часть края случае вы можете столкнуться.

+0

Это исправлено, спасибо! Мне все еще интересно, почему 'settings.local' необходим для тестирования, но не при запуске генератора с' yo my-generator'. – Deimyts

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

  • Нет связанных вопросов^_^