私が歌川です

@utgwkk が書いている

いつも腕にFitbit Charge 3を巻いているのだけれど、バンドに大きな亀裂が入って、強く折り曲げたら今にもポキッと折れそうな感じになった。それだけならまだよいけど、腕に巻いてるとヒリヒリするようになってしまった。こういう状態が続くのであれば耐えられない。付けているとだんだん蒸れてくるので、すでに耐えがたい状態であることには変わりない。

utgwkk.hateblo.jp

そもそもFitbitを導入したきっかけは、睡眠をトラッキングしたい、というものだったと思う。それまで、寝ていることは自分からは見えなかったものが可視化され、睡眠の状態を観察できるようになった。今はそこまで睡眠で困っていないし、睡眠のデータも見ていない。

今日はFitbitを付けずに寝ようと思う。体調のトラッキングへの関心がなくなったわけではなく、もうちょっと快適に過ごしたいという欲求が勝った。

シレン感想スレ

ナオキイベントはクリアして食神のほこらを出すところまではやった。

緊急事態宣言が明けてから初めて銭湯に行った。湯船にしっかり浸かって、サウナにも入り、すっかり自律神経をわからせた。

「自律神経をわからせる」という表現をよく用いるのだけれど、由来だと思っていたものでは「わからせる」とは言ってなかった。このマグロナちゃんのツイートが由来です。

最近ずっと、ツイートにもあるような、暑いのか寒いのか分からないみたいな状態になっていた。暑くてぐったりするし、かといって冷房をつけると寒すぎる。冷房をつけた上で布団をかぶると暑いし身体がベタベタする。整った状態で明日を迎えたいものである。

帰りがけにコンビニでソルティライチを買って飲んだ。

GitHub Actionsで、Perlの落ちたテストをアノテーションするTest2プラグインを書いた / GitHub ActionsのProblem matcherについて知った

表題にあるものを書きました。cpanm Test2::Plugin::GitHub::Actions::AnnotateFailedTest して use Test2::Plugin::GitHub::Actions::AnnotateFailedTest することで今すぐにご利用いただけます。

metacpan.org

以前書いたpytestプラグインとだいたい同じように、GitHub Actionsで落ちたテストがアノテーションされます。 さらに、Test2::V0を使っているのであれば、このように is の差分がアノテーションされるので、どのような状態でテストに落ちたのかが一目で分かるようになります*1

f:id:utgwkk:20200531020834p:plain
'山下七海' ne 'NA'

Problem matcherについて

今回書いたTest2プラグインを試すために、適当なリポジトリSetup Perl Environment actionを使ってテストを走らせていたのですが、アノテーションプラグインをuseしなくても落ちたテストにアノテーションされていることに気づきました。

f:id:utgwkk:20200531021652p:plain
このように

よく見ると、以下のように当該actionのREADMEに書いてあります。

This action sets by perl environment for use in actions by:

  • optionally downloading and caching a version of perl
  • registering problem matchers for error output

このアノテーションは、Problem matcherという機能によって実現されていました。テストの出力から、落ちたテストのファイルパスや行数・メッセージを正規表現マッチで抽出してアノテーションしています。

なるほど、この機能のことを知らずにTest2プラグインを書いていた*2のですが、reviewdogに渡す出力のフォーマットを決めるのに似ているなと思いました。 落ちたテストの行数だけを知るのであれば、Problem matcherだけでも十分そうです。行数に加えてアサーションの詳細を見たい、というときには単純な正規表現マッチだけでは限界があるので、今回書いたプラグインのようなものを併用するのがよさそうと思いました。

*1:https://github.com/utgwkk/playground-of-Test2-Plugin-GitHub-Actions-AnnotateFailedTest/actions/runs/120008307

*2:当初は行数のアノテーションだけやっていて、アサーションの詳細もアノテーションしたいと思い一念発起して実装した後に気づいた