我有一个自定义生成器,我正在为它编写一些测试。在app.run()
来电之前,我已经有app.options['skip-install'] = true
来阻止 npm 运行。但我也需要它来自动覆盖文件。
在整个安装过程中,我得到[?] Overwrite client/file.js? (Ynaxdh)
并需要它为我自动回答。
我尝试了app.options.force = true
,但似乎没有做任何事情。
我正在app安装中运行:
function installApp(obj, opts, done) {
helpers.mockPrompt(obj.app, opts);
obj.app.options['skip-install'] = true;
obj.app.run({}, function () {
async.series([
function (cb) {
if (opts._extras.addPage) {
installAppPage(obj, cb);
} else {
cb();
}
}
], done);
});
}
然后我想用这个运行一个子生成器:
function installAppPage(obj, done) {
helpers.mockPrompt(obj.page, {
pageName: 'webPage',
pageType: 'web'
});
obj.page.args = ['--force']; // This isn't working
obj.page.options.force; // This isn't working either
obj.page.run([], function () {
helpers.mockPrompt(obj.page, {
pageName: 'mobilePage',
pageType: 'mobile'
});
obj.page.run({}, function () {
done();
});
});
}
页面的子生成器修改文件。我需要覆盖它,以便我可以测试它。我该怎么强迫它?我无法在运行测试时提示,它需要自动化。