travis ciで失敗したテストを再実行する
perlのmoduleを開発しているとき、travis ciでときどき失敗するテストがあり、失敗するたびにRestart buildボタンをポチっと押すという不毛なことをしていた。
もちろん失敗する原因をちゃんと特定し、テストをなおすのが一番だが、とりあえず失敗したテストを自動でリトライさせるなら下記のように書けばいいことを最近知った。
language: perl perl: - '5.24' - '5.22' - '5.20' script: - prove --state save -l t || prove --state failed -l sudo: false
最初のproveで--state save
を指定しておき結果を.prove
ファイルに保存する。そして失敗したときは、--state failed
のテストを対象にproveを再び走らせている。
実際cpmでこうしている。