PythonのCLIフレームワークであるClickでは、テストツールも用意されており、容易にテストを書くことができます。
invoke
を使えば、コマンドと引数を渡すことができますが、デフォルトでは例外をキャッチします。
通常は、exit_code
の値を比較すればよいのですが、テストを書いている途中とかでデバッグをするときは、どこで例外が発生したかがわかりません。
runner = CliRunner() result = runner.invoke(cli, ["--option"]) assert result.exit_code == 0
そこで、catch_exceptions
をつけると例外をキャッチしないので、デバッグがしやすくなります。
result = runner.invoke(cli, ["--option"], catch_exceptions=False)