🏔️
Python Unit Test あれこれ
はじめに
PythonのUnitTestのあれこれを1ページでまとめるもの。
徐々に深堀りし・書き足して自分のチートシートに仕上げたい。
Pytest
PythonのUnitTestのデファクト?だと思う。
以降はすべてPytestのUnitTestで利用を試しているものになる。
freezegun
現在時刻を固定的に扱いたい場合に利用するもの。
fixtureでもwithでも利用できる。
pytest-env
環境変数を定義したい場合に利用するもの。
pytest.iniとかに環境変数を書いておけば展開してくれるので楽。
pytest-mock
pytestでMockを利用するためのライブラリ。
requests-mock
PythonのHTTPクライアントとしてよく利用されるであろう、 requests の Mock。
pytest-httpserver
Pytest中に独立したHTTPServerを建てることが可能なライブラリ。
moto
様々なAWSサービスのMockとして振る舞ってくれるもの。
主要なサービスが揃っているので、ニッチな開発でなければ成り立つのでは?レベル。
DynamoDB
System Manager Parameter Store
pytest-cov
Pytestのカバレッジ測定ツール。
かんたんに利用できてHTMLレポートまで出力できるので、とても便利。
自分のUnitTestの、圧倒的なルート抜けなどのチェックを行うのに最適。
コマンドラインでよく指定するもの
pytest のコマンドライン実行時に、オプションを付けて実行する。
オプション | 操作 |
---|---|
--cov | カバレッジの取得(C0) |
--cov-branch | 分岐カバレッジの取得(C1) |
--cov-report=html | HTML形式のレポート出力。 |
--cov-report=xml | XML形式のレポート出力。CI等でSonarで可視化する場合などで利用。 |
終わりに
すべての商用コードには、きちんとしたUnitTestが一緒に組まれていないと、予後が悲惨なことになる。面倒ではあるが、頑張ろう。
※Pythonは初心者なので、間違いなど有りましたらコメントにて指摘をいただけると幸いです。
※間違った情報を拡散して人の時間を無駄に奪わぬよう修正は行います。
Discussion