これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ヤーンです。
プログラム:
NAME
yarn - Unix コマンドラインツールのシナリオテスト
SYNOPSIS
糸 [--欠落ステップを許可] [--欠落ステップを許可しない] [--cd-datadir] [--no-cd-datadir]
[--config=FILE] [--ダンプ構成] [-- ダンプ設定名] [--generate-manpage=TEMPLATE] [-h]
[ - 助けて] [--ヘルプ-オール] [--list-config-files] [- バージョン] [--no-default-configs]
[--ダンプメモリプロファイル=METHOD] [--env=名前=値] [- ログ=FILE] [--ログ保持=N]
[-ログレベル=LEVEL] [--log-max=サイズ] [-ログモード=モード] [-- メモリダンプ間隔=SECONDS]
[- 出力=FILE] [-q] [- 静かな] [-静かではありません] [--必須前提]
[-- 前提条件を必要としない] [-rシナリオ] [- 走る=シナリオ] [- シェル=SHELL] [--シェル引数=ARG]
[-sシェル ライブラリ] [--シェルライブラリ=シェル ライブラリ] [-スナップショット] [--スナップショットなし]
[--tempdir=DIR] [-タイミング] [--タイミングなし] [-v] [-詳細] [--詳細なし] [-n] [-- ノーアクト]
[-ドライラン] [- 演じる] [--ノーノーアクト] [-ドライランなし] [-ふりをしない] [FILE] ...
DESCRIPTION
糸 はシナリオ テスト ツールです。ユーザーがどのように使用するかを説明するシナリオを記述します。
ソフトウェアと何が起こるべきか、そして非常に軽量な構文を使用してシナリオを表現します
自動的にテストできるようにします。 シナリオはシンプルですが厳密です
構造:
GIVEN テストのセットアップ
テストすべきことがいつ起こるか
THEN 事後条件は true でなければなりません
例として、バックアップ プログラムが次のことを検証するための非常に短いテスト シナリオを考えてみましょう。
少なくとも XNUMX つの単純なケースでは機能します。
SCENARIO バックアップは復元可能
GIVEN ディレクトリ内のいくつかのライブ データ
および空のバックアップ リポジトリ
バックアップがいつ作成されるか
その後、データケースが復元されます
最後にクリーンアップ
AND が追加されていることに注意してください。複数の GIVEN、WHEN、および THEN ステートメントを使用できます。 AND
キーワードにより、テキストが読みやすくなります。 SCENARIO も必要で、タイトルを与えます。
最後に、クリーンアップ用です。 FINALLY ステップは、シナリオが
成功するかどうか。
シナリオは、ある程度人間が読める言語で書かれることを意図しています。 しかし、彼らは
自由形式のテキストではありません。 GIVEN/WHEN/THEN 構造に加えて、それぞれのテキスト
この手順には、コンピューターで実行可能な実装が必要です。 これは IMPLEMENTS を使用して行われます。
上記のバックアップ シナリオは、次のように実装できます。
IMPLEMENTS GIVEN ディレクトリ内のいくつかのライブデータ
rm -rf "$TESTDIR/データ"
mkdir "$TESTDIR/データ"
echo foo > "$TESTDIR/data/foo"
IMPLEMENTS GIVEN 空のバックアップ リポジトリ
rm -rf "$TESTDIR/レポ"
mkdir "$TESTDIR/レポ"
バックアップが作成される場合の実装
バックアッププログラム -r "$TESTDIR/repo" "$TESTDIR/data"
IMPLEMENTS THEN データを復元できます
mkdir "$TESTDIR/restored"
復元プログラム -r "$TESTDIR/repo" "$TESTDIR/restored"
diff -rq "$TESTDIR/data" "$TESTDIR/restored"
IMPLEMENTS FINALLY クリーンアップ
echo 何もすることはありません
各「IMPLEMENTS GIVEN」(または WHEN、THEN、FINALLY) の後には、次の正規表現が続きます。
同じ行、次に実行されるシェル スクリプトを実行して、
正規表現に一致します。 実装は、一致からデータを次のように抽出できます。
たとえば、正規表現を使用すると、ファイル サイズを指定できます。
もちろん、上記の例は少しばかげています。
ステップ? その答えは、IMPLEMENTS を使用して実装されたさまざまなステップが、
テスト対象のプログラムのさまざまな側面をテストするために、さまざまな方法で組み合わせます。
さらに、ステップの説明を人間の言語のテキストにすることで、通常の
式、テストのほとんどは、うまくいけば非人によって書かれ、理解されることができます
プログラマー。 プログラムが何をすべきかを理解している人は、テストを書くことができます
その動作を確認します。 さまざまなステップの実装は、次の方法で実装する必要があります。
プログラマですが、適切に設計された一連のステップが与えられ、十分な柔軟性があります。
非常に優れたテスト スイートを作成できます。
IMPLEMENTS セクションのシェル コマンドは、ユーザーが実行したディレクトリで実行されます。
糸。 環境変数 SRCDIR その完全修飾パスに設定されます
ディレクトリにあります。
OPTIONS
--欠落ステップを許可
シナリオが存在しないステップを参照することを許可し、それらについて警告しますが、
そうでなければシナリオを無視する
--欠落ステップを許可しない
--allow-missing-steps の反対
--cd-datadir
コマンド実行時に DATADIR に変更
--no-cd-datadir
--cd-datadir の反対
--env=名前=値
テストの実行時に NAME=VALUE を環境に追加します
--generate-manpage=TEMPLATE
サプレッシェル
-h, - 助けて
このヘルプメッセージを表示して終了します
- 出力=FILE
標準出力ではなく、出力をFILEに書き込みます
-q, - 静かな
静かにして、進捗報告を避け、エラーのみを表示する
-静かではありません
--quietの反対
--必須前提
ASSUMING が常にパスすることを要求する
-- 前提条件を必要としない
--require-assumptions の反対
-r, - 走る=シナリオ
SCENARIO のみを実行 (このオプションは繰り返すことができます)
- シェル=SHELL
SHELL を使用して IMPLEMENT を実行する
--シェル引数=ARG
シェルの実行時に ARG を使用する
-s, --シェルライブラリ=シェル ライブラリ
IMPLEMENTS セクションで使用するシェル ライブラリをインクルードする
-スナップショット
各シナリオ ステップの後にテスト作業ディレクトリのスナップショットを作成します。 あなたはたぶん
--tempdir でこれを使用したい
--スナップショットなし
--snapshot の反対
--tempdir=DIR
テスト用の一時ディレクトリとして DIR を使用します。 空であるか、存在しない必要があります
-タイミング
各シナリオとステップのウォール クロック時間を報告する
--タイミングなし
--timing の反対
-v, -詳細
進捗レポートを XNUMX 行ではなく、より詳細に (「テキストの壁」) にします。
ステータス情報; これは端末がない場合は自動的にオンになります
--詳細なし
--verboseの反対
- バージョン
プログラムのバージョン番号を表示して終了します
-n, -- ノーアクト, -ドライラン, - 演じる
実際にテストを実行するのではなく、実行されるものを出力するだけです
--ノーノーアクト, -ドライランなし, -ふりをしない
--no-act の反対
ファイル 設定
--config=FILE
設定ファイルにFILEを追加します
--ダンプ構成
現在の構成全体を書き出す
-- ダンプ設定名
サプレッシェル
--ヘルプ-オール
すべてのオプションを表示
--list-config-files
サプレッシェル
--no-default-configs
読み取る構成ファイルの明確なリスト
ロギング
- ログ=FILE
ログエントリをFILEに書き込みます(デフォルトでは、ログファイルをまったく書き込みません)。 「syslog」を使用する
システムログにログを記録するには、「stderr」を使用して標準エラー出力にログを記録するか、「none」を使用して
ロギングを無効にする
--ログ保持=N
最後のNログを保持する(10)
-ログレベル=LEVEL
レベル、デバッグ、情報、警告、エラー、クリティカル、致命的のいずれかのログ (デフォルト: デバッグ)
--log-max=サイズ
SIZEより大きいログをローテーションし、ゼロの場合はゼロ(デフォルト:0)
-ログモード=モード
新しいログファイルのアクセス許可をMODE(0600進数、デフォルトはXNUMX)に設定します
性能
--ダンプメモリプロファイル=METHOD
なし、シンプル、またはメリアスのいずれかであるMETHODを使用してメモリプロファイリングダンプを作成します
(デフォルト:シンプル)
-- メモリダンプ間隔=SECONDS
メモリプロファイリングダンプを少なくともXNUMX秒離して作成します
ENVIRONMENT
データディレクトリ
テストで使用できる一時ディレクトリへの完全修飾パス名
ファイル。 次の場合を除き、一時ディレクトリはテスト実行の最後に削除されます。
ユーザーは --snapshot でそれ以外を指定します。
SRCDIR ユーザーが実行したディレクトリへの完全修飾パス名 糸。 これは
テストでディレクトリを変更したい場合に便利です。
実施例
走る 糸 現在のディレクトリのすべてのシナリオで:
糸 *.シナリオ
すべてのファイルは、あたかも XNUMX つのファイルであるかのようにまとめて扱われます。
IMPLEMENTS セクションの実行時に含めるシェル ライブラリを追加するには:
糸 --shell-library mylib.sh *.scenario
繰り返すことができます --シェルライブラリ 必要な回数だけ。
onworks.net サービスを使用して糸をオンラインで使用する