Ruby Cucumber跨文件进行转换
我在features/support/transforms/date_transform.rb中有两个转换Ruby Cucumber跨文件进行转换,ruby,testing,cucumber,transform,Ruby,Testing,Cucumber,Transform,我在features/support/transforms/date_transform.rb中有两个转换 CAPTURE_YEAR = Transform /^(20\d{2})$/ do |year| year.to_i end CAPTURE_QUARTER = Transform /^(first|second|third|fourth)$/ do |quarter| {first: 1, second: 2, third: 3, fourth: 4}[quarter.to
CAPTURE_YEAR = Transform /^(20\d{2})$/ do |year|
year.to_i
end
CAPTURE_QUARTER = Transform /^(first|second|third|fourth)$/ do |quarter|
{first: 1, second: 2, third: 3, fourth: 4}[quarter.to_sym]
end
CAPTURE_NUMBER = Transform /^\d+$/ do |number|
number.to_i
end
我在features/support/transforms/number\u transform.rb中有另一个转换
CAPTURE_YEAR = Transform /^(20\d{2})$/ do |year|
year.to_i
end
CAPTURE_QUARTER = Transform /^(first|second|third|fourth)$/ do |quarter|
{first: 1, second: 2, third: 3, fourth: 4}[quarter.to_sym]
end
CAPTURE_NUMBER = Transform /^\d+$/ do |number|
number.to_i
end
我意识到年份和数字1几乎相同,但我不想简单地去掉CAPTURE\u year
变量。我想做:
CAPTURE_YEAR = CAPTURE_NUMBER
但不幸的是,CAPTURE\u NUMBER
在我处理的文件中不存在。知道如何在cucumber中正确包含其他变换吗?我应该明确要求每个转换文件中的文件,对吗
提前谢谢 Cucumber只需加载
support
目录中的任何文件即可。它似乎是按字母顺序加载的(但我不知道这是一种有文档记录的/可靠的行为-也就是说,我不想只是重命名文件来绕过它)
如果您试图在加载包含CAPTURE\u NUMBER
的文件之前声明CAPTURE\u YEAR
,则会失败,正如您所发现的那样
我认为最好的选择是在尝试使用其中声明的常量之前,显式地要求number\u转换
文件。就我个人而言,在文件中声明它所依赖的文件并没有问题
您也可以在env.rb
中需要它,因为它会在任何其他支持文件之前被解析,如果您的许多其他文件也依赖它,那么它可能是一个更好的选择