pythonのunittestを作るときいつもVSCodeで動かないのが悔しいのでメモを残す
unittestは基本的にこのような形のソースをで書く
import unittest
class AAA( unittest.TestCase ):
def test_xxxx(self):
...
if __name__ == '__main__':
unittest.main()
ポイントは
- クラスは
unittest.TestCase
クラスを継承すること - メソッドは
test_
ではじめること(多分、引数はないほうがいい)
最後のif __name__ ==
以降はこのファイルを直で起動したときに実行できるようにするためのもの。
次に私はいつもここで困るのだが、フォルダ構成。私はpythonに慣れていないのでモジュールの動きがわからず、「???」となったのでこのメモを残すことにした
test
├ testsuite
│ ├ __init__.py
│ └ AAA_test.py
│
├ test_root.py
└ __init__.py
のように各フォルダに__init__.pyとするとパッケージ?のルールに従ってtest_AAA.pyのを見つけてくれる。
上記の構成なら python3 -m unittest
で認識してくれる。
をクリックして
の Configure Python Testsをクリック
テストファイル名のパターンを聞いてくるので4番目の「test_*.py」を選択する。
スクショミスで上2つが実行ずみになっているのはご愛嬌。