运行 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'
并让您的步骤定义调用代码以获取密码。通过添加额外的预处理步骤,您会使整个测试套件更加复杂和脆弱。
场景语言永远不需要从外部来源获取有关如何做某事的信息。您始终可以将该要求下推到步骤定义和支持代码中。
我了解到 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'
并让您的步骤定义调用代码以获取密码。通过添加额外的预处理步骤,您会使整个测试套件更加复杂和脆弱。
场景语言永远不需要从外部来源获取有关如何做某事的信息。您始终可以将该要求下推到步骤定义和支持代码中。