【Python3】VSCodeのUnittestを使用して単体テストを行う方法

2022年3月10日

みなさまおはこんばんにちは、せなです。
今回はVSCodeからPythonのUnittestを使用して単体テストを行う方法を解説したいと思います。

環境について

・Mac M1
・Python3
・VSCode(拡張機能の「Python3」をインストールすること)

フォルダ構成について

code/
	functions/
		hoge.py
tests/
	__init__.py
	code/
		__init__.py
		functions/
			__init__.py
			test_hoge.py

testsフォルダを作る際に重要なのがそれぞれのディレクトリにある「init.py」ファイルです。
init.py」がない場合読み込みが行われずにエラーが発生しますので、注意してください。

Unittest_1

ファイル内容について

hoge.py

class Hoge():
    def hello(self):
        return "hello"

test_hoge.py

import unittest
import os
import sys
BASE_PATH = '/hogehoge/code' 	# hogehogeはご自分のパスに置き換えてください。
sys.path.append(os.path.abspath(BASE_PATH))

from functions import hoge as target
class TestHoge(unittest.TestCase):
    tag = target.Hoge()

    def test_hello(self):
    	# 返却される結果が等価であるか
        self.assertEqual(self.tag.hello(), "hello")

「assertEqual」は等価であるかを検証する関数となります。
他にも「assertTrue」や「assertFalse」などがあります。
詳しくは公式ドキュメントなどを参考にしてみてください。

公式ドキュメント: unittest

少々話が逸れましたが、上記のファイルを作成したらUnitTestを実行してみます。

UnitTestの実行について

VSCodeを起動されていると思いますので、以下のコマンドを使用して「コマンドパレット」を表示させましょう。

Mac: Command+Shift+P
Windows: Ctrl+Shift+P

表示されたコマンドパレットに「Python Configer Tests」と入力します。

unittest_2

次にunittestかpytestの選択となりますが、今回はunittestを選択してください。

unittest_3

次はディレクトリをどこにするか尋ねられます。
ディレクトリはcodeとtestsと同じディレクトリとするので「.」を選択しましょう。

unittest_4

次にテストファイルの形式を選択します。
今回は「test_*.py」の形式を指定しましょう。

unittest_5

最後にvscodeの画面左のパネルにフラスコのマークがあるので開いて再生ボタンを押下して実行です!
緑のチェックマークが出ていればOKです。

unittest_6

失敗した時には赤のバツマークとなり、エラー内容が表示されます。
画像では「hello」と「helloo」で比較を行っているためエラーが発生していますね。

unittest_7

任意に実行したいときには関数横の再生ボタンを押下します。
複数のテストコードから1つだけ確認したいときに重宝すると思います。

unitttest_8

最後に

備忘録の意味も込めて、記事にしてみました。
忙しくてなかなか記事を書けていないですけど、ネタは溜まっていきます。(で、書ける頃には忘れちゃっているんですよね…)
何事も忘れないうちにやらなきゃですね。

ではでは〜