batsでテストしながらBashのコードをデバッグします。
BashトラックのテストをBatsで実行すると、BatsはSTDOUTとSTDERRの両方を取り込み、出力のアサーションに使います。
これはローカルのbatsでは動作しますが、Exercismのオンラインエディターでは動作しません。
テストの結果に影響を与えずにデバッグ用の出力を表示したいときは、ファイルディスクリプター(fd)3に書き出します。
echo 'debug message' >&3
Batsは、テスト実行中にfd 3へ書き出された出力を表示しますが、assert_outputのようなアサーションにはその出力を含めません。
実行例:
$ bats hello_world.bats
hello_world.bats
✓ Say Hi!
debug message
1 test, 0 failures
これは、ローカルでテストを実行するときに役立ちます。