私はこの問題Cucumber scenarios for extremely long work flowキュウリの背景と持続シナリオ(または前提条件)
を持っていたそして今、私は、マルチパートフォームステップの長いシリーズごとに分離されたシナリオを書いてきました。私はそれぞれScenario
を設定するBackground
セクションを持っています。しかし今、私が全体の機能を実行すると、キュウリはScenario
ごとにBackground
を繰り返すことを望みます。私はScenario
を試してみたい。
Feature: Submit a manuscript
In order to complete a manuscript submission
As a corresponding author
I want to complete the to-do list
Background:
Given I am logged in as "Steve"
And an article_submission "Testing Web Apps" exists
And "Steve" is a "Corresponding Author" for "Testing Web Apps"
And I am on the manuscript to-do list page for "Testing Web Apps"
Scenario: Steve suggests reviewers for his manuscript
...
Scenario: Steve completes the manuscript fees to-do item
...
Scenario: Steve wants to add Barbara as a co-author
...
Scenario: Steve uploads necessary files
...
Scenario: Steve edits the fees page and general information page
...
Scenario: Steve re-uploads the manuscript file
...
Scenario: Steve completes the Copyright Transfer
...
Scenario: Steve completes Author Responsibilities & Agreement
...
# These scenarios depend on all the previous ones having run
Scenario: Steve Completes submission
...
Scenario: Steve goes back and make changes
...
Scenario: Steve fills out payment page
前のシナリオを必要とするための方法を実行することがありますされています:
ここに私の機能がどのように見えるかの裸の概要は? Background
を1回だけ実行する方法はありますか?
私は、自分が必要としているものよりも自分のものを難しくしているかもしれないと思います。シナリオとしてリストされているものは、代わりにシナリオのステップのように私に読んでいます。あなたがリンクしている質問への答えに記載されているパンのように、あなたのシナリオは自己完結型で、このようなもの間に依存関係はありません。それが私なら、私はバックグラウンドとシナリオを一握りに崩壊させてしまいます(最後の3つはそれぞれ1つのシナリオになるでしょう)。そして、 "与えられたスティーブが原稿提出を完了しました"のようなより高いレベルのステップを使用し、それぞれのステップが確実に働くようにしてください。 –
これらのシナリオは、ほとんどの場合、自己完結型です。私を信じて、これらのシナリオは短くはありません。私はすでに何百ものステップを持っています。それらを組み合わせると、読みにくくなり、自己完結型ではありません。私は、一般的に使用されているステップをステップ定義ファイルに移動することができるところであればどこでもリファクタリングしました。私が本当に必要と思うのは、機能を実行した後にデータベースをフリーズさせてから、それを次の依存機能の前にロードする方法です。 –
私たちのアプリケーションの仕組みは、著者のために長いワークフローがあり、次にレビュー担当者用にもう1つ、改訂プロセス用に別のワークフローがあります。各ワークフローは、前のワークフローによって設定された条件に依存します。私はすでに多くの設備と工場にデータをロードしていますが、私が必要とするのは、すべてのモデルを一度に作成するファクトリです。 Feature Cをテストする必要があるたびに、Feature AとBを繰り返す必要はありません。 –