我正在处理庞大的代码库,其中功能按域分组并保存在单独的包中。
+ ServicesDomain
| --- +特征
| + step_definitions+ SalesDomain
| --- +特征
| + step_definitions
但是总会有一些常见的步骤,我找不到一种方法来将常见的步骤定义保留在一些常见的步骤包中。
我想知道的是,如果有办法将所有通用步骤保留在一些常见的包中,并使我的域包依赖于通用步骤包来利用通用步骤。
答案 0 :(得分:0)
这样做的一种方法是设置一个名为features / support / env.rb的文件,然后添加一个' require'对此文件的声明,以包含每次的常用步骤。例如,该文件可能包含:
require File.join(File.dirname(__FILE__), '..', 'common', 'common_steps')
这样你的common_steps.rb每次都会被加载。
env.rb是每个Cucumber运行的第一个文件。
您是否也听说过Pickle宝石?这可能值得一看,因为它通过将常用步骤放入名为' pickle_steps.rb'的文件中来做类似的事情。这为测试模型提供了方便的步骤定义,但没有什么能阻止您编辑该文件并添加自己的文件。
希望有所帮助吗?
答案 1 :(得分:0)
Cucumber有一个命令行选项-r
,允许您包含特定文件。如果运行cucumber --help
,则可以获得有关所有命令行选项的更多信息。在ruby中,您可以将它与config.yml文件结合起来,全局设置黄瓜在项目中的运行方式。但是我怀疑你使用的是java,我不知道这是否适用。如果是这样的话,你可以在黄瓜邮件列表上询问。
另一种方法是将文件放在每个支持目录中,例如ServicesDomain/features/support
和SalesDomian/features/support
只有一个require语句,可以引入所有常见步骤。 Cucumber会自动加载features/support
中的所有文件(从features/..
运行时)。