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

Run cucumber .feature file through ERB preprocessor

我了解到 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

我想知道是否已经有什么东西在那里了。

既然你会写,你到底为什么要这样做

When 'I use the secret password' 

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

场景语言永远不需要从外部来源获取有关如何做某事的信息。您始终可以将该要求下推到步骤定义和支持代码中。