我知道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
我想知道是否已经存在某些东西。
答案 0 :(得分:1)
为什么你能写完
时才会这样做When 'I use the secret password'
并使用您的步骤定义调用代码来获取密码。通过添加额外的预处理步骤,您将使整个测试套件变得更加复杂和脆弱。
从来没有必要使用场景语言来获取有关如何从外部来源执行某些操作的信息。您始终可以将该要求降低到步骤定义和支持代码中。