2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【VScode】Python単体テストのカバレッジ表示が簡単にできるようになったよ

Last updated at Posted at 2024-10-12

はじめに

3年ほど前にVScode上でのPython単体テストのカバレッジ可視化に関する以下の記事を書きました。

↑記事の投稿時はVScodeで単体テストカバレッジを可視化するために新しく拡張機能をインストールしたり、設定ファイルを手動で編集する作業が必要でした。しかし、2024年10月にリリースされたVScodeのPython拡張機能(v2024.16.0)から、カバレッジ可視化機能がネイティブサポートされるようになりました。

VScode上のPython開発プロジェクトでとても分かりやすくpytest単体テストのカバレッジ可視化ができるようになったので紹介します。

vscode_coverage.png
↑新しく追加されたRun Tests with Coverage機能によるカバレッジ可視化画面

想定ユーザー

Pythonプロジェクトでpytest単体テスト実行方法を知っているユーザーを想定して説明します。またVScodeのPython拡張機能・単体テスト用のPythonライブラリpytestとpytest-covをインストール済であることを前提としています。

VScode上での単体テストカバレッジ表示

自分のPython製OSSプロジェクトのpyCirclizeソースコードを例としてpytest単体テストカバレッジ表示の手順を説明します。

単体テスト用の環境準備

例題プロジェクトをクローンし、必要な依存ライブラリをインストールする。Pythonライブラリはvenvを利用して仮想環境にインストールするのを推奨します。

# pyCirclizeプロジェクトのソースコードをローカルにクローン 
git clone git@github.com:moshi4/pyCirclize.git
# 実行依存ライブラリと単体テスト用ライブラリをインストール
pip install -e . pytest pytest-cov

VScode設定ファイル準備

VScodeのテストエクスプローラー上でpytestの実行設定をしたことがある人はここに記載する準備はおそらく不要

PythonプロジェクトをVScodeで開いてテストエクスプローラーで下の画面が出た人は、VScode設定ファイル(settings.json)にpytestでの単体テスト実行用の設定パラメーターを追加する必要がある。

test_explorer.png

Configure Python Testsを押下後に、pytesttestsと選択すると以下の設定ファイルが作成され、VScode上で単体テストを実行できるようになる。

.vscode/settings.json
{
  "python.testing.pytestArgs": ["tests"],
  "python.testing.unittestEnabled": false,
  "python.testing.pytestEnabled": true
}

単体テスト実行&カバレッジ表示

VScode上に開いたPythonプロジェクトのテストエクスプローラー上でRun Tests with Coverageを押下することで、カバレッジ表示付きの単体テスト結果が表示される。

vscode_coverage.png

テストエクスプローラーの下側にモジュール単位でそれぞれのカバレッジ率がバッテリー残量のようなわかりやすい形式で表示され、またソースコード上でも単体テストが実行された行・されていない行がそれぞれ緑・赤でハイライトされます。単体テストのカバレッジ確認がとてもやりやすくなったなと思います。

最後に

2024年3月頃、VScodeに単体テストカバレッジ表示をサポートするためのネイティブAPIが実装されたので、Pythonでも活用できるようになるのを待ってました。2024年10月についにPython拡張機能で今回紹介したグラフィカルにわかりやすい形のカバレッジ表示をサポートするようになり、実際に利用してみてとても便利だなと感じました。この機能は実装されたばかりでまだ見落としている人も多い気がするので、この記事を読んで興味を持った人は活用してみてください。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?