◆ VSCode 高機能

たまたまこのページを見かけたので VSCode で Python のテストを実行してみました
https://code.visualstudio.com/docs/python/testing

Python 拡張機能をインストールしたら Ctrl-Shift-P のコマンドから 「Python: Configure Tests」 を選びます
test だけ打てば候補に出てきます

対応してるのは unittest, pytest, nose の 3 つです
上記のページによれば nose はサポートしてるもののテストフレームワーク自体はメンテナンスモードだそうです
nose には nose2 もあって こっちはアクティブですが リンクは 1 のほうだったのでサポートは 1 のみかもしれません

pytest はサードパーティ製で pip でインストールが必要です
unittest は Python 標準のものなので準備なしで使えます

とりあえず標準の unittest を使ってみます
選ぶとディレクトリやテスト対象にするファイル名の選択になるので適当に選びます
終わると settings.json が追加が作られます
ディレクトリに 「.」 ファイルに 「test*.py」 を選んだ場合はこうなりました

{
"python.testing.unittestArgs": [
"-v",
"-s",
".",
"-p",
"test*.py"
],
"python.testing.pytestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.unittestEnabled": true
}

そのまま引数を返す関数 f を持つ a.py を作って test.py からテストしてみます

[a.py]
def f(v): return v

[test.py]
import a
import unittest

class TestA(unittest.TestCase):
def test_1(self):
self.assertEqual(a.f(1), 1)

def test_2(self):
self.assertEqual(a.f("a"), "a")

if __name__ == '__main__':
unittest.main()

VSCode の左側の検索や拡張機能のボタンがあるところに Test のボタンがあるので押すとテスト一覧が見えます
こんな感じでテストファイルとクラスとメソッドが並びます

test.py
TestA
test_1
test_2

各行の▶ボタンでファイル単位やクラス単位やメソッド単位でテストを実行できます
また コード中にもクラスやメソッドの上に 「Run Test | Debug Test」 というのが表示されます
ここをクリックするとテストを実行できます

テスト結果はテストのパネルと Run Test ボタンの左側に表示されます
こういう感じです「✔ Run Tests」
(成功→✔ 失敗→⚠)

いつもながら VSCode の高機能さには驚かされます
エディタというより IDE レベルです
.NET の GUI 用のデザイナを除けばもう本家 VisualStudio いらないんじゃないかってくらいですね