修行の場

知人が言っていました。これは修行だと。

Visual Studio Codeをpytestでインクリメンタルに快適開発できるように設定

設定の共通化

  • user seettings, snippets, keyboards shortcutsの共有。
  • extensionsの共有
    • リストを共有する。code --install-extension

PyTest用のVSCの設定

pdbやpytestとの連携が割と良いです。 エラーを見やすく表示してくれたり、ブレークポイントを設定できたりします。 かなり便利でVSC内ではipython使わなくても開発できそうな感じです。

  • PyTestの設定をオンにする。
  • テスト実行・デバッグ実行のショートカットキーをオンにする。
    • EmacsのようなChord Shortcutを設定できるようなので、Ctrl+t & ctrl+d (test -> debug)と行った感じのキーバインドにしました。
    • 左のテストタブでも良いかもしれません。
    • もしくは再起動すると関数の上にRun Test|Debug Testボタンが表示される。
  • UIにブレークポイントを設定してデバッグ実行したり、単にテストの実行をしたりします。テスト成功 or 失敗は一番下の青いバーに表示されます。少し困るのは、output, debug consoleが醜いことです。ただ、problemsタブやコードに表示されるエラーを見ればそこまでみにくさは感じません。

ドキュメント閲覧

その他便利なもの。

  • multi-root workspaces
    • フロントエンドとバックエンドでrepositoryを分けたいが、当面は同じエンジニアが両方書く場合などに便利。
  • peek
    • Ctrl + shift + F10: 文脈(定義にとぼうとした元のコードの周辺コード)を表示しながら、定義に飛んでくれる。

Pytestの設定

It is usually a good idea to keep your conftest.py file in the top level test or project root directory.

https://docs.pytest.org/en/latest/writing_plugins.html#plugin-discovery-order-at-tool-startup

例えば、tests/にテストをおいているなら、そこにおけばいいです。 そうすると、そこで実行されたpytestsコマンドと--root-dirにtestsを指定したコマンド実行時にconftest.pyの中身が反映されます。 設定が1モジュールでまとまるようなものなら、プロジェクトごとにconftest.pyを作っていって、 その都度、過去のプロジェクトから使えそうなのを持ってくる。

Cookiecutterが良さげ。 

https://github.com/pytest-dev/cookiecutter-pytest-plugin