0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Pytest+Docker+VSCode】VSCodeを使ってコンテナ内のPytestをリモートデバッグしよう!

Last updated at Posted at 2022-12-17

はじめに

VSCodeでコンテナ内のPytestをリモートデバッグをするには

  • PythonもしくはPython関連のFrameworkのDockerfileの作成
  • リモートデバッグの設定
  • Python Test Explorer for Visual Studio Code(VSCodeの拡張機能)のインストール

をする必要があります
今回はDjango Rest Framework内でPytestのデバッグを行います
Dockerでの環境構築したことないよ!という方は下記の記事を参考にしてください

Poetry を使用する場合は?

リモートデバッグの設定の記事の後半に記載されていますPoetryのPythonのパスの指定方法を参照してください

使用する拡張機能について

今回はテストをGUIで確認・実行できる拡張機能である
Python Test Explorer for Visual Studio Codeを使用します
ボタンひとつで全てのテストを実行できたり任意のテストを実行できるだけでなく、
ブレークポイントも使えるので非常に便利です

スクリーンショット 2023-11-26 9.09.27.png

使用するテストのフレームワーク設定方法

command+shift+pを押した後Python:テストを構成するを選択します
スクリーンショット 2023-11-26 9.09.49.png

使用するテストフレームワークを選択します
今回はPytestを選択しますがUnittestも選択できます
後からテストフレームワークを変更される場合はもう一度上記のPython:テストを構成するからはじめてください
スクリーンショット 2023-11-26 9.10.05.png

テストファイルが置かれているディレクトリを選択します
スクリーンショット 2023-11-26 9.10.24.png

実際に使用してみよう!

テストエクスプローラの概要

サイドバーにあるテストエクスプローラのアイコンを選択するとテストの一覧が表示されます
スクリーンショット 2023-11-26 9.10.54.png

テストエクスプローラの文字の右側に4つのアイコンがあります。左から順に

  • 再読み込み
  • テストを一斉に実行
  • テストを一斉にデバッグ(ブレークポイント)
  • ターミナルの起動

となっております
スクリーンショット 2023-11-26 9.11.12.png

また、個別のメソッドの

  • 実行
  • デバッグ
  • メソッドのあるファイルへ飛ぶ

こともできます
スクリーンショット 2023-11-26 9.11.29.png

デバッグしてみよう!

該当する箇所へブレークポイントを設定し、ブレークポイントのマークを押すとデバッガーが起動します
スクリーンショット 2023-11-26 9.11.44.png

通常のVSCodeのデバッガ同様変数の中をみたりウォッチの設定、デバッグコンソールも使用できます
スクリーンショット 2023-11-26 9.12.04.png
スクリーンショット 2023-11-26 9.12.16.png

また、APIのテストを行う際は該当するメソッドにブレークポイントを設定するとテストコード同様ブレークポイントが使えるので大変便利です
スクリーンショット 2023-11-26 9.12.29.png

注意

pytest.iniのaddoptsにcoverageを入れるとブレークポイントが使えない不具合があるようです
リモートデバッグの設定をしたにも関わらずブレークポイントが機能しない場合はpytest.iniを確認してください

記事の紹介

以下の記事も書きましたので良かったら読んでみてください

参考

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?