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でこうしている。