是否可以知道从哪个文件夹黄瓜方案运行



我有下一个文件夹结构:

-features
  -admin
  -desktop
  -mobile
-step definitions
-support

我想知道当前方案现在从哪个文件夹运行(管理员/桌面/移动)。可能吗?因为我想在钩子文件中添加一个条件,以执行不同文件夹的所需条件。

您可以使用

返回Cucumber::Core::Ast::Location::PreciseScenario#location 方法访问有关功能文件位置的详细信息。从中,您可以使用#file访问该功能的文件路径:

scenario.location.file
#=> "features/mobile/test.feature"

例如,钩子可能如下所示:

Before do |scenario|
  platform = scenario.location.file.split(File::SEPARATOR)[1].to_sym
  #=> :admin:, :desktop or :mobile
  # Output the platform (or whatever conditional logic you want)
  case platform
  when :admin then puts 'admin'
  when :desktop then puts 'desktop'
  when :mobile then puts 'mobile'
  end
end

如果您使用的是 Ruby 2.0 及更高版本,那么 __dir__ 方法是您的方法(如果您想获取绝对路径):

# File: /home/xxx/folder/features/admin/test.rb puts __dir__ # => "/home/xxx/folder/features/admin"

但是,如果您只想知道文件所在的目录的名称怎么办?然后你可以使用File.basename

# File: /home/xxx/folder/features/admin/test.rb puts File.basename(__dir__) # => "admin"

相关内容

  • 没有找到相关文章

最新更新