VScodeでpytestを実施する機会があったので、設定方法と使い方をメモ書きします。
使用端末はMacです。
作業手順
まず、適当なディレクトリを作成します。
この記事ではpytest_dir
とします。
pytest_dir
を作成したらその中にsrc
ディレクトリとtest
ディレクトリを作成します。
作成したら、VScode上部のファイル
をクリックし、フォルダを開く
を選択してpytest_dir
を開きます。
開いたら次の構成でファイルを作成します。__init__.py
の中身はからでOKです。
ここで記載している以外のファイルは、VScodeが自動生成してくれます。
pytest_dir
├── __init__.py
├── src
│ ├── __init__.py
│ └──calculation.py
└── test
├── __init__.py
└── test_calculation.py
# calculation.py
def addition(num1: int, num2: int) -> int:
return num1 + num2
def subtraction(num1: int, num2: int) -> int:
return num1 - num2
def division(num1: int, num2: int) -> float:
if num2 == 0:
raise ZeroDivisionError()
return num1 / num2
# test_calculation.py
from ..src.calculation import (
addition, subtraction, division
)
def test_add():
assert addition(2, 3) == 5
def test_sub():
assert subtraction(9, 3) == 6
def test_divide_ok():
assert division(8,4) == 2
ファイルが作成できたらF1
キーを押してコマンドパレット表示させます。
表示させたコマンドパレットからPython: Configure Tests
を探してクリックします。
次の表示でpytest pytest framworkを選択します。
テストコードの入っているディレクトリを選択します。
画面左側にフラスコマークが表示されるのでクリックします。
するとテスト対象のディレクトリとファイル名が表示され、
さらにテストファイルに再生マークが表示されます。
画面上部の赤枠のボタンを押すとテストが実行されます。
デバックコンソールを確認すると、テストが正常終了していることが確認できます。
assertの結果を想定外の数値に変えてテスト実行ボタンを実行すると、エラー内容を表示してくれます。
フラスコボタンを押した際に、以下のエラーが表示される場合があります。
Pytest Discovery Error
Error discovering pytest(see Output > Python)
その場合はこちらの記事を参照すれば解決するかもしれません。
【VSCode】Pytest Discovery Error : Error discovering pytest
デバッグ
デバッグを行うには下記画面赤枠の虫マークをクリックします。
また、ブレイクポイントを設定するには、任意の処理の左端をクリックいます。
ブレイクポイントを設定した状態で虫マークを押すと、
下記のようにブレイクポイントの箇所で処理が一時停止します。
参考サイト
pytestのとりあえず知っておきたい使い方
VSCodeとpytestでPythonコードをテスト&デバッグする
【VScode】pytestによる単体テスト実行 & カバレッジ可視化方法