私が歌川です

@utgwkk が書いている

GitHub Actionsで落ちたテストをアノテーションするpytestプラグインを書いた

表題のものを書きました。

pypi.org *1

workflow内でおもむろに pip install pytest-github-actions-annotate-failures してから使うとアノテーションされる、という寸法になっています。

f:id:utgwkk:20200509025547p:plain

pytestは簡単にプラグインを書けるのがいいですね。初めて書いたけど、フックできる関数TestReportの定義を適宜参照したら書けました*2

仕組みとしては、 pytest_runtest_logreport をフックして、落ちたテストの行数とファイルパスを取得しつつworkflow commandを発行するだけです。40行ぐらいで書けててシンプルになっています。 テスト失敗時の出力を、改行をエスケープすることでいい感じにアノテーションしています。

ご活用ください。

github.com

*1:名前がけっこう長い

*2:逆に言うと、ドキュメントを読むより実コードを読んだほうが書き方は分かりやすくて、それはそれでどうなのという感じはする