Я работаю над пользовательским генератором-генератором, и я пытаюсь добавить некоторые тесты для подгенератора.Где юмористический тестовый помощник ищет подгенераторы?
Я не могу понять, как использовать 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.
Попробуйте пройти путь, посмотрите на http://yeoman.io/authoring/composability.html settings.local –
Использование '.withGenerators (['../ sub-generator/index.js'])' дает ту же ошибку, но учитывает 1 зарегистрированный генератор вместо 2. Я также пробовал передавать вариации по пути с помощью 'path.join()' и 'path.resolve()', чтобы не повлиять. – Deimyts