Cucumber(ソフトウェア)
ステップ定義編集
Gherkinの.feature
ファイルのステップはメソッド呼び出しと見なすことができます。Cucumberの前ステップを実行できます。ステップ定義を介して、そのステップの実行方法を指示する必要があります。
定義はRubyで記述され、通常はfeatures/step_definitions/*_steps.rb
でファイルされます。定義は、呼び出しと同じキーワードで始まります(Gherkinの完全な言語サポートを含む)。各定義は2つの引数を取ります
- $ variablesを含む正規表現または文字列
- 実行するルビーコードを含むブロック
例正規表現の使用
Given /(.*) has a valid Credit or Debit card/ do |name| # Ruby codeend
文字列と$変数の使用例。実行時に文字列が正規表現に変換され、$ variableが(.*)
に一致するように変換されることに注意してください。
Given "$name has a valid Credit or Debit card" do |name| # Ruby codeend
HooksEdit
フックは、テストの実行前にセットアップを実行し、後でティアダウンを実行できるようにするCucumberの方法です。これらは実行可能なRubyブロックとして定義されます。 、@Before, @After
アノテーションでマークされたJUnitメソッドに似ています。通常、これらはsupport/
の下に配置され、グローバルに適用されます。3つの基本的なタイプのフックが存在します。
-
Before
-シナリオの前に実行 -
After
-シナリオの後に実行シナリオ -
Around
-制御を想定し、シナリオを実行します
追加のフックには次のものが含まれます
-
BeforeStep
-
AfterStep
-
AfterConfiguration
-Cucumber構成の後に実行され、に渡されます構成のスタンス
Before, After, and Around
フックは、オプションで、適用されるタグフィルタリングシナリオのリストを取得します。同じ文字列内のタグのリストはOR
として扱われ、個々の引数はAND
として扱われます。タグは、オプションで~
を前に付けることで無効にできます。
フックの前にタグ付けされた例
Before("@ATM") do |scenario| # Ruby codeend
フックは、データベースの状態を維持するためによく使用されます。通常は、シナリオを実行する前にクリーンアップします。 Before
フックとAfter
フックを使用してトランザクションを開始およびロールバックすることもでき、多くのCucumber拡張機能はタグ。
統合と実装編集
Java、JavaScript、Pythonなどの一般的な言語用のCucumberのRuby以外の実装が存在します。統合テストフレームワークのサポートもあります。実装の完全なリストはCucumberにあります。 Cucumberには、多くの継続的インテグレーション構成でうまく機能する統合テストツールがあります。 JenkinsやTeamCityなどの一般的なCIツール、およびEclipseやRubyMineなどのIDE用のキュウリプラグインがあります。
以下は、Cucumber-JVMを使用してJava用に記述されたステップ定義の例です。
@Given("(.*) has a valid Credit or Debit card")public void has_card(String name) { // Java code}
フォーマッタープラグイン編集
キュウリは、フォーマッタープラグインを使用して出力を提供します。デフォルトでは、
- JSON
- HTML
- JUnit
を含むいくつかの一般的な形式が提供されています。異なるCucumber実装間で標準化されていないため、提供内容が異なる場合があります。 Cucumberは、画像やビデオなどの豊富な出力形式もサポートしています。
ブラウザの自動化編集
Cucumberは、組み込みのブラウザの自動化を提供していません。ただし、SeleniumやWATiR-WebDriverなどの既存のプログラムではうまく機能します。 ActiveRecordなどの他のプログラムを活用して、トランザクションでのテストの実行をサポートします。
Cucumberコマンドライン編集
Cucumberには、命令の包括的なリストをカバーする組み込みのコマンドラインインターフェイスが付属しています。 。ほとんどのコマンドラインツールと同様に、cucumberには、コマンドが受け入れる引数の概要を提供する--help
オプションがあります。
Cucumberコマンドラインを使用すると、定義済みのテストをすばやく実行できます。 。また、タグをフィルタリングしてシナリオのサブセットを実行することもサポートしています。
$ cucumber --tags @tag-name
上記のコマンドは、 @tag-name
を指定しました。引数は、タグの論理的なOR
またはAND
操作として提供できます。タグとは別に、シナリオはシナリオ名でフィルタリングできます。
$ cucumber --name logout
上記のコマンドは、単語を含むシナリオのみを実行します。 「ログアウト」。
テストが失敗したときに何がうまくいかなかったかを知ることも役立ちます。 Cucumberを使用すると、--backtrace
オプションを使用してコードのバグを簡単に見つけることができます。
キュウリは、仕掛品タグ@wip
でマークすることにより、完了していない特定のシナリオを無視するように構成することもできます。 Cucumberに--wip
引数が渡されると、Cucumberは@wip
タグのあるシナリオを無視します。