首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cucumber跨文件转换

Cucumber跨文件转换
EN

Stack Overflow用户
提问于 2011-11-09 03:12:40
回答 1查看 193关注 0票数 1

我在feature/support/ transforms /date_transform.rb中有两个转换

代码语言:javascript
复制
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

我在features/support/transforms/number_transform.rb中有另一个转换

代码语言:javascript
复制
CAPTURE_NUMBER = Transform /^\d+$/ do |number|
  number.to_i
end

我意识到年份和数字1几乎相同,但我不想简单地去掉CAPTURE_YEAR变量。我想做的是:

代码语言:javascript
复制
CAPTURE_YEAR = CAPTURE_NUMBER

但不幸的是,我正在处理的文件中不存在CAPTURE_NUMBER。你知道如何在cucumber中正确地包含其他转换吗?我应该显式地要求每个转换文件中的文件,对吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-10 22:29:07

Cucumber只是加载support目录中的任何文件。它似乎是按字母顺序加载它们的(但我不知道这是一种有记录的/可靠的行为--即我不喜欢仅仅重命名文件来绕过它)。

如果您试图在加载包含CAPTURE_NUMBER的文件之前声明CAPTURE_YEAR,那么它将失败,正如您已经发现的那样。

我认为最好的选择是在尝试使用number_transform文件中声明的常量之前显式地要求该文件。就我个人而言,在一个文件中声明它依赖于哪些文件是没有问题的。

您也可以在env.rb中需要它,因为它在任何其他支持文件之前被解析,如果您的许多其他文件也依赖于它,则可能是一个更好的选择。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8055813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档