こんにちは、私はVSCodeでPythonコードを書く機会が多いです。
勉強も兼ねてPythonとVSCodeでの効率的な開発方法を紹介していく予定です。
この記事ではVSCodeとpytestでPythonコードをスムーズにテストする方法について説明します!
環境情報
- OS: macOS Big Sur
- VSCode: 1.56.2 (x64)
- 拡張機能: ms-python.python 2021.5.926500501
- Python: 3.8.5
- pytest: 6.2.4
ワークスペースの用意
まずはじめに、適当なディレクトリを作成しVSCodeで開きます。
その中に、以下のようにファイルを配置します。
- (root)
- hello.py
- tests
- __init__.py
- test_hello.py
hello.py
def hello(): s = 'hello' print(s) def hello_error(): s = 'hello error' print(s) raise Exception('hello')
tests/init.py
# 空のファイル
tests/test_hello.py
def hello(): s = 'hello' print(s) def hello_error(): s = 'hello error' print(s) raise Exception('hello')
VSCodeの設定
VSCodeでpytestの設定をしていきます。
まず、はじめに使用する環境を設定しておきます。
コマンドパレット(macOSの場合、cmd + shift + p)を開き、Python: Select Interpreterを選択して使用するPythonを決定します。
次に、コマンドパレットからPython: Configure Testsを選択します。
先程選択した環境にpytestがインストールされていない場合、こちらの完了後にpytestが自動でインストールされることに注意します。
次に、pytestを選択します。unittestやnoseにも対応しているようです。
最後に、pytestのテストコードが入っているディレクトリを選択します。
今回はtestsと入力します。
以上で設定は完了です。
テストの実行
設定が完了すると、サイドバーにフラスコが表示されます。こちらを選択します。
選択すると、テストケースが一覧で表示されます。
実行したいテストケースの右側にある▶︎を選択して実行します。
実行すると、テストが通ったかどうかが表示されます。
デバッグの実行
通らなかったテストケースについてデバッグを実行してみましょう。
最初にデバッグ用のブレークポイントを設定しておきます。
次に、エラーを起こしているテストケースの▶︎の右側にある虫のアイコンを選択して実行します。
すると、ブレークポイントを設定した箇所で処理が止まり、変数やコールスタックの情報が確認できます。
おわりに
うまくテスト&デバッグできましたか?
テストケースの用意は大変ですが、トータルで見ると開発が楽になることが多いと思います。
ツールをうまく使って効率的にテスト&デバッグしていきたいですね。
参考
Testing Python in Visual Studio Code