読者です 読者をやめる 読者になる 読者になる

Travis CI 上の Poltergeist で撮ったスクリーンショットを確認する方法

Capybara + Poltergeist を使った統合テストがローカルの開発環境 (OS X) では成功するが Travis CI では失敗するという現象に遭遇して困っていたら、Poltergeist の README に「とりあえずスクリーンショットを撮ってみなよ」と書いてあった。

Depending on your tests, one thing that you may need is some fonts. If you're getting errors on a CI that don't occur during development then try taking some screenshots - it may well be missing fonts throwing things off kilter. Your distro will have various font packages available to install.

jonleighton/poltergeist · GitHub

ローカルで試したらうまくいったので実際に Travis CI 上でスクリーンショットを撮影してそれを見たいが、Travis CI で標準出力を見ることはできるがそれ以上のことはできない。

認証とかなしで画像をアップロードできるサービスといえば Gyazo なのでこれを利用する。

.travis.yml に追記する:

after_script: curl -X POST http://gyazo.com/upload.cgi -F 'imagedata=@/tmp/create_new_entry.png' -F 'filename=gyazo.com'

たぶん curl の出力に line feed が含まれていないのが悪いんだろうけど、ビルドジョブの出力を眺められるページで curl の出力が見えない。
Travis CI は省略・装飾されていない生の出力をテキストファイルとしても提供しているのでこれを見てみる (例: https://s3.amazonaws.com/archive.travis-ci.org/jobs/14253241/log.txt)

すると Gyazo へ POST することに成功しているのでスクリーンショットを見てみる (例: http://gyazo.com/c33bfefa7144c9f0d35d2ee78329dd0b)