プラグインのテスト
テストの実行についての概要を説明しています。
概要
テストは, プラグインのシナリオを実行し, 実行に成功したかどうかを判定してプラグインの正常性を確認するためのものです。
この機能はシナリオ機能と密接に関連しています。
シナリオの記述作業を開発フローに取り込む
テストを利用するには, プラグインの機能やテストごとに シナリオファイル を記述する作業が必要です。
なぜなら, Scenamatica はあなたが作成した機能の発火条件や, それにどのような結果が期待されているかを知りせん。
そのため, プラグインの開発者が正しい(期待される)動作を Scenamatica に教える必要があります。
驚くことに, シナリオファイルの記述は JUnit のテストコードの記述と同じくらいかんたんです。
新規機能を追加する際には, その機能を実装する前にシナリオファイルを作成し, それに沿って実装を進めるとよいでしょう。
プラグインにおけるテスト駆動開発の始まりです。
テストの実行
テストの実行は, そのプラグインのシナリオを実行するだけで, 自動的に行われます。 シナリオの実行結果はそのままテスト結果にエスカレーションされます。
テスト(シナリオ)を手動で実行するには, /scenamatica scenario startコマンドを実行します。
CI/CD パイプラインと連携すると, テストサーバの用意からテストの実行, 結果のレポートまで全て自動で行えます。
詳しくは以下のドキュメントを参照してください:
シナリオセッション
シナリオセッションは, 複数のシナリオの実行をまとめて管理するための機能です。
1つのセッションは複数のシナリオを持ち, それらはセッション内で順番付けされて実行されます。
シナリオの実行結果(テストの実行結果)はセッションごとに集計され出力されます。
シナリオセッションは実行時に自動で構成されるため, 開発者が意識する必要はありません。
シナリオが同じトリガで, かつ同タイミングで発火した場合は, 同じセッションに登録されます。
例えば, シナリオの読み込み後に実行するトリガ (ON_LOAD
) を持つシナリオが .jar ファイルに複数存在する場合は, 同じセッションで実行されます。
条件付き実行
シナリオに実行条件を指定することで, テストの実行に条件を持たせられます。
条件が満たされない場合は, テストは実行されずにスキップされる(SKIPPED
で終了する)ため, テストの実行に失敗したとはみなされません。
自動再再試行
この機能は, 失敗したシナリオを自動で再試行します。
この機能が有効な状態でシナリオの実行に失敗すると, キューの末尾に シナリオを追加して再実行を試みます。
これは設定された最大試行回数まで繰り返されます。
また, 再試行時のトリガは初回実行時のトリガと同じ種類・値が使われます。
初回実行で一度失敗し, かつ再試行時に成功したシナリオは 不安定なシナリオ としてマークされ,
flakes
としてレポートされます。
テストのサマリには, この機能によって追加されたシナリオも含まれます。
また, 失敗したシナリオの一覧表示では, 同名(再試行された)シナリオはまとめられて表示されます。
テストの結果
Scenamatica のテストは, 以下の結果を持ちます。