2012-07-26 56 views
4

我有两个轨道项目(A和B)具有以下的宝石,其中包括:宝石如何提供黄瓜功能和步骤定义?

#project A 
gem "green_theme", :path => "~/dev/themes/green_theme" 
gem "devel_tasks", :path => "~/dev/themes/devel_tasks" 

#project B 
gem "red_theme", :path => "~/dev/themes/red_theme" 
gem "devel_tasks", :path => "~/dev/themes/devel_tasks" 

两个项目,A和B,有一个特征dir来的特征和步骤。 这两个主题,红色和绿色,应该有共同的功能,如 登录/注销按钮,HTML元标记等。

我需要做的是将常见的主题相关功能和步骤 放置在devel_tasks gem中。通过这种方式,我可以共享这些测试并使用 来检查给定的模板是否符合标准。

一个简单的方法来测试什么,我需要做的就是创建一个新的Rails项目 与样品黄瓜功能,然后尝试运行“黄瓜 例子/ i18n中/ EN /功能”。

回答

0

如果可能的话,我会将两个项目中的通用功能提取到一个宝石中,然后在那里进行测试。

如果由于某种原因,两个项目真的要单独实现相同的功能:

您只需将它们放在一个文件,并指示用户require,在他们的ENV文件提供一个宝石的步骤定义.RB。

我不知道如何在gem中提供可以简单运行的功能,因此您必须提供一个将功能复制到features目录的生成器。如果您要生成这些功能,用户可能也更简单地生成步骤定义。