- 如何测试生成器的工作流程?如果我有一个项目是生成器本身,那我是否需要不断地创建新目录来运行“yo my-generator”?
- 在Yo 1.0 beta版中,生成器框架是否有所改变?是否存在破坏性更改?
- 生成器如何向全局“yo”二进制文件注册自己?
$ cd ~/dev/generator-mtv-raps/
$ npm link
$ cd ~/dev/mytest/
$ yo mtv-raps
它会被构建。
此外,使用mocha对生成器进行单元测试非常简单。有一组内置的测试辅助函数。您需要测试的基础内容可以在generator-webapp的测试中找到https://github.com/yeoman/generator-webapp/blob/master/test/test.js
helpers.mockPrompt
模拟提示。helpers.assertFiles
测试所需创建的所有文件是否已创建。第4点有点棘手,期望文件的数组可以传递一个正则表达式进行检查。如果想了解更多有关测试辅助函数的信息,请查看源代码。https://github.com/yeoman/generator/blob/master/lib/test/helpers.js
问题2:已由btford回答。
问题3:
通过全局安装(或以上述方式链接)将生成器绑定到yo
并使用命名约定。所有生成器都以“generator”开头,然后是“-”,然后是“名称”。
因此,generator-mtv-raps
通过$ yo mtv-raps
访问。
如何测试生成器的工作流程?
我将在未来几天内为generator-angular进行这方面的工作。您可以在Github上跟踪我的进度。由于从一个yeoman命令转换到使用yo与bower和yo一起使用,因此目前没有太多示例。我想Generator.prototype.method将进行某种级别的单元测试,以及涉及编写bash脚本运行yo、npm、bower和grunt的E2E测试。
随着yo 1.0的beta版,生成器框架是否发生了变化?是否有重大变更?
在移植generator-angular的经验中,我并没有看到太多变化。有一个新的可选简化API,可能会很有用。
生成器如何在全局
yo
二进制文件中注册自己?
现在的答案是它不会注册。你需要在项目目录中安装/使用生成器。我之前因为一个错误的符号链接而让它工作了,但这并不是推荐的方法。