
この記事はPython標準のunittestの基本的な使い方についての備忘録です。
vscodeでunittestをデバッグ実行する方法について記載します。
この設定を行うと、テストの実行をvscodeからできるようになります。いちいちコマンドを叩いて実行しなくても良くなるので、ラクなって生産性も上がります。
記事を見ると設定の手順が多くて大変そうと思うかもしれませんが、やってみると簡単に設定できるので、ぜひ試してみてください。
実行環境
今回は以下の環境を使用します。
Python 3.7以降
OS:windows
IDE:Visual Studio Code
設定方法
画像はクリックすると拡大できます。
見づらい場合は拡大してご参照ください。
①vscodeのコマンドパレットを開きます。(Ctrl + Shift + P)
②コマンドパレットに「test」などを入力して以下を選択します。python:すべての単体テストを実行(python:Run All Tests)

③「python:すべての単体テストを実行」を選択すると、テストフレームワークの設定がないと警告が出ます。
④警告内のEnable and configure a Test Frameworkボタンをクリックします。

⑤コマンドパレットで「どのテストフレームワークを使用するか」聞かれるので、unittestを選択します。

⑥テストモジュールが格納されているディレクトリを聞かれるので、テストモジュールの格納先ディレクトリを選択します。
画像では「tests」フォルダ内にテストモジュールを格納しているため、「tests」を指定します。

⑦テストモジュールのファイル名の命名規則を聞かれるので、適切なものを選びます。
画像では、テストモジュールは「test_XXXXX.py」の命名規則で作成しているため、test_*.pyを選択します。

設定はこれで終了となります。
デバッグ実行の方法
設定が完了すると、画像のようにテストコードにRun Test | Debug Testと表示されるようになります。

Run testをクリックすれば普通にテストが実行され、Debug Testをクリックすればデバッグ実行が可能です。
また、クラス定義の上のRun Test | Debug Testをクリックした場合は、クラス全体を、メソッドの上のRun Test | Debug Testをクリックした場合は、そのテストメソッドのみ実行 or デバッグすることが可能です。
試しにブレークポイントを配置してDebug Testをクリックしてみると、以下のようにブレークポイントで止まってくれてデバッグ実行することができます。
ステップインをすれば、テスト対象の処理もステップ実行することができます。

ちなみに、Run Testを実行した結果は「出力(OUTPUT)」に表示され、Debug Testを実行した結果は「デバッグコンソール」に表示されます。
「出力(OUTPUT)」が表示されていない場合は「Ctrl + Shift + U」で表示させることができます。

「デバッグコンソール」が表示されていない場合は「Ctrl + Shift + V」で表示させることができます。

まとめ
今回はvscodeでunittestをデバッグ実行する方法について記載しました。
テストコードが正しいか確認したい時や想定通りの結果にならない時の調査など、クリックするだけですぐにテストが実行できるため、とても便利です。
記事で見ると設定の手順が多くて大変そうと思うかもしれませんが、実際にやってみると3分もあれば設定できるので、ぜひやってみてください。
unittestの使い方については、他にもいろいろ記載しています。
よろしければ見ていってください。

コメント