我正在开发一个自定义的yeoman生成器,我正在尝试为子生成器添加一些测试。
我无法弄清楚如何使用yeoman's test helpers来实现这一目标。
我已经能够使用composeWith()
与我的主生成器一起运行子生成器,但我无法让测试助手识别它。
此外,当我从测试文件中运行生成器时,与正常运行(从命令行)运行时,我会遇到一些奇怪的差异。
app / index.js中的:
注意:此代码在正常运行时以及从我的测试运行时失败。如果我将composeWith
更改为this.composeWith('my-generator:sub-generator')
,它会从命令行成功运行,但在测试期间仍然会失败。
initializing: function() {
this.composeWith('sub-generator');
},
在我的测试文件中:
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
)运行生成器时产生的错误:
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.
从我的测试中运行时:
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.
为什么我的测试文件看不到我安装的其他生成器?它告诉我,我只有2台。而不是24台发电机。
答案 0 :(得分:0)
调用composeWith http://yeoman.io/authoring/composability.html
时,您需要传递settings.local
传递路径本身将修复您可能遇到的大部分边缘情况。