6

我想用最新版本的 yeoman 制作一个自定义生成器,但我遇到了一些困难。我一直在挖掘各种文档和示例资源(如 webapp 和角度生成器),但我仍有一些问题。

  1. 测试生成器的工作流程是什么?如果我有一个生成器本身的项目,我是否会继续创建新目录来运行yo my-generator

  2. 生成器框架在 1.0 的 beta 版本中是否发生了变化yo?是否发生了重大变化?

  3. 生成器如何将自己注册到全局yo二进制文件中?

谢谢。

4

2 回答 2

7

这个问题已经有几个月的历史了,但我认为现在发现它的任何人都知道在http://yeoman.io/generators.html中已经解释了更多内容。

问题一:

在本地测试您的发电机很容易。例如,如果您的生成器被称为“generator-mtv-raps”

$ 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

  1. 测试发电机可以在不损坏的情况下使用。
  2. 模拟你的提示helpers.mockPrompt
  3. 测试您要创建的所有文件是否通过helpers.assertFiles
  4. 测试您模拟的提示值是否插入到创建的文件中。

数字 4 有点棘手,可以将预期文件的数组传递给正则表达式进行检查。如果您想了解更多关于测试助手的信息,源是最好的地方。https://github.com/yeoman/generator/blob/master/lib/test/helpers.js

问题 2:btford 已经回答

问题 3:

生成器yo通过全局安装(或如上所述链接它们)并使用命名约定来绑定。所有生成器都以“generator”开头,然后是“-”,然后是“name”。

因此generator-mtv-raps通过访问$ yo mtv-raps

于 2013-06-10T07:30:20.567 回答
6

测试生成器的工作流程是什么?

我将在接下来的几天内为生成器角度工作。你可以在 Github 上跟踪我的进度yeoman不幸的是,由于从一个命令到使用yo并列bower的过渡,还没有太多示例yo。我想会有一定程度的单元测试Generator.prototype.method,以及涉及编写 bash 脚本来运行yonpmbowergrunt.

在 yo 1.0 的 beta 版本中,生成器框架是否发生了变化?是否发生了重大变化?

根据我移植生成器角度的经验,我没有看到太多变化。有一个新的、可选的简化 API,它可能很有用。

生成器如何将自己注册到全局yo二进制文件中?

现在的答案是没有。您在项目目录中安装/使用生成器。由于错误的符号链接,我不知何故让它工作了,但这不是推荐的方法。

于 2013-02-19T19:08:38.560 回答