2016-11-22 13 views
0

キュウリの変数である.featureのファイルはサポートされていませんが、ERBプリプロセッサで実行することはできません。キュウリの.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' 

を書いて、パスワードを取得するためにあなたのステップ定義呼番号を持つことができたときに

答えて

1

はなぜ地球上であなたはこれを行うだろう。余分な前処理ステップを追加することで、テストスイート全体がより複雑で壊れやすくなります。

外部ソースから何かを行う方法についての情報を得るためのシナリオの言葉は必要ありません。その要件を常にステップ定義とサポートコードにプッシュできます。

+0

キュウリの変数について質問している他の質問にも同様のことが書かれています。私は物事が少し違うと思う。はい、もちろん、変数をステップ定義に入れることは可能です。おそらくこれはキュウバーが推薦し正式にサポートするものです。しかし、それに来るとき、私は本当に人間の読解可能な文章で私の 'コード'を書くことを楽しんでいます。 –

+0

'秘密パスワード<%= ENV [" PASSWORD "]%>'は、「私が秘密のパスワードを使用するとき」よりも人間が読める形式です!シナリオはコーディングではなく、ビヘイビアを記述するためのものです。もちろん、それがあなたの選択ですが、シナリオでのコーディングがCukesによって強く推奨されない理由があります。 – diabolist

関連する問題