4

我有两个带有以下宝石的 Rails 项目(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,都有一个 features 目录用于功能和步骤。红色和绿色这两个主题都应该具有共同的功能,例如登录/注销按钮、html 元标记等。

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

测试我需要做的一个简单方法是创建一个带有示例 Cucumber 功能的新 Rails 项目,然后尝试运行“cucumber examples/i18n/en/features”。

4

1 回答 1

0

如果可能的话,我会将两个项目中的通用功能提取到一个 gem 中并在那里测试一次。

如果由于某种原因这两个项目确实必须分别实现相同的功能:

您可以在 gem 中提供步骤定义,只需将它们放在一个文件中并require在他们的 env.rb 中指示用户访问该文件。

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

于 2014-05-08T20:21:29.957 回答