機能的に類似した Web サイトのセットがあり、開発とセレン ブラウザー テストの両方を推進するためにキュウリの仕様を書きたいと考えています。このサイトは言語が異なり、URL も異なりますが、機能はほぼ同じです。
シナリオの例は次のとおりです。
Scenario Outline: Photo Gallery Next Action
Given I visit a "<photo-gallery-page>"
When I click "<next-button>" in the gallery
Then the photo should advance
Examples:
| photo-gallery-page | next-button |
| www.site1.com/photo-gallery | Next |
| www.site2.com/la-galerie-de-photos | Suivant |
少数のシナリオと例がある場合、これは問題ありません。ただし、何百ものシナリオと、新しいサイトのかなり定期的な立ち上げを期待しています。新しいサイトを立ち上げるときに、各シナリオを編集して例を追加する必要は避けたいと考えています。
すべてのサイトに対して同じシナリオを実行できるように、すべてのサンプル変数をサイトごとの構成に保存する必要があると思います。その後、新しい構成をかなり簡単に追加でき、すべてのシナリオ例を編集して判読不能にすることを回避できます。
site[:en].photo-gallery-page = 'www.site1.com/photo-gallery'
site[:fr].photo-gallery-page = 'www.site2.com/la-galerie-de-photos'
site[:en].next-button = 'Next'
site[:fr].next-button = 'Suivant'
1 つのオプションは、この構成をどこかに保存してから、スクリプトを使用してサイト固有のガーキン ファイルを生成することです。次に、必要な例を含むこれらの生成されたガーキンを実行できます
もっと簡単な方法はないかと考えています。私のもう 1 つのアイデアは、テーブル変換を使用してサンプル ブロックを置き換えることができるかどうかということでした。私は読んだことがありますが、私が知る限り、それがステップ内のインラインテーブルである場合にのみ、テーブルを変換できます (そしてそれをカスタムコードブロックに置き換えることができます)。サンプル ブロックを同じように変換することはできません。
私はそれを正しく理解しましたか?これを達成するための最善の方法に関する他の提案はありますか?