Clickアプリケーションのテスト—クリックドキュメント
Clickアプリケーションのテスト
基本的なテストのために、Clickはclick.testing
モジュールを提供します。このモジュールは、コマンドラインアプリケーションを呼び出してその動作を確認するのに役立つテスト機能を提供します。
これらのツールは、単純化のためにインタプリタの状態全体を変更し、スレッドセーフではないため、実際にはテストにのみ使用する必要があります。
基本的なテスト
Clickアプリケーションをテストするための基本的な機能は、コマンドラインスクリプトとしてコマンドを呼び出すことができる CliRunner です。 CliRunner.invoke()メソッドは、コマンドラインスクリプトを分離して実行し、出力をバイトとバイナリデータの両方としてキャプチャします。
戻り値は Result オブジェクトであり、キャプチャされた出力データ、終了コード、およびオプションの例外が添付されています。
hello.py
test_hello.py
サブコマンドのテストでは、 CliRunner.invoke()メソッドの args パラメーターにサブコマンド名を指定する必要があります。
sync.py
test_sync.py
.invoke()
に渡される追加のキーワード引数は、最初のContextオブジェクトを構築するために使用されます。 たとえば、固定端子幅に対してテストを実行する場合は、次を使用できます。
ファイルシステムの分離
ファイルシステム操作を伴う基本的なコマンドラインツールの場合、 CliRunner.isolated_filesystem()メソッドは、現在の作業ディレクトリを新しい空のフォルダーに設定するのに役立ちます。
cat.py
test_cat.py
入力ストリーム
テストラッパーを使用して、入力ストリーム(stdin)の入力データを提供することもできます。 これは、次のようなプロンプトのテストに非常に役立ちます。
prompt.py
test_prompt.py
プロンプトは、入力データを出力ストリームにも書き込むようにエミュレートされることに注意してください。 隠された入力が予想される場合、これは明らかに起こりません。