matobaの備忘録

和歌山と東京を往復しつつ活動するエンジニアの記録

ファイル更新時にpytestを自動実行する

誰かのための備忘録です。

Pythonでテストを書くときに、pytestを使うことはよくあります。

で、ファイルを更新した後にpytestでテストを実行したいこともよくあると思います。

そういうとき、ファイル更新を検知して、自動でpytestを実行してくれるツールがあります。

pypi.org

使い方は簡単です。

pytestを実行している開発環境で、pip install してptwというコマンドを実行するだけです。

$ pip install pytest-watch
$ ptw

ptwを実行するとファイルの監視が始まります。

僕は、コードを書く際、技術的な課題が概ね解決できそうなイメージができたら「とりあえず、一気通貫の入出力だけ確認するユニットテストを書く。その後は、pytestを自動実行しながら良い感じにリファクタリングしつつ、細部のテストを追加していく」という進め方をすることがあります。

そういうとき、pytest-watchを起動しておくと、便利です。「さっきまで動いていたけど、いつの間にか動かなくなった」という問題を避けやすくなります。

dockerで開発している人は、以下の話が参考になるかもです。

https://github.com/joeyespo/pytest-watch/issues/91

と言いつつ、僕は、以下のページで紹介されているwatchdogを使いつつ、自分でdockerのテストコマンドを実行してたりします。

qiita.com