通过ERB预处理器运行黄瓜.feature文件

时间:2016-11-22 01:44:44

标签: ruby-on-rails ruby cucumber erb

我知道Cucumber .feature文件中不存在对变量的支持,但是如果我可以通过ERB预处理器运行它们,则没有必要。

我希望能够制作像my_tests.feature.erb这样的文件:

Feature: Do something
Scenario: Thing
  When I have the secret password <%= ENV["PASSWORD"] %>
  Then my credentials are valid

我在这里写了一个快速解决方案:

require 'erb'

Dir.glob("./*.feature.erb").each do |path|
  erb = File.read path
  result = ERB.new(erb).result(binding)
  new_path = path.gsub(".feature.erb", ".feature")
  File.open(new_path, 'w') do |f|
    f.write result
  end
end

我想知道是否已经存在某些东西。

1 个答案:

答案 0 :(得分:1)

为什么你能写完

时才会这样做
When 'I use the secret password' 

并使用您的步骤定义调用代码来获取密码。通过添加额外的预处理步骤,您将使整个测试套件变得更加复杂和脆弱。

从来没有必要使用场景语言来获取有关如何从外部来源执行某些操作的信息。您始终可以将该要求降低到步骤定义和支持代码中。