LoginSignup
2
1

More than 5 years have passed since last update.

Rails5 の System Test のスクリーンショットの発動で eshell が壊れるのを回避する方法

Last updated at Posted at 2017-11-25

eshell 内でテストを走らせているときにスクリーンショットが発動すると、あろうことかインライン表示しようとして無造作に垂れ流される base64 文字列によって eshell が使いものにならなくなります。

対策1. インライン表示しないようにする

ENV["RAILS_SYSTEM_TESTING_SCREENSHOT"]simple に設定します。

rails_helper.rb
ENV["RAILS_SYSTEM_TESTING_SCREENSHOT"] ||= "simple"

これで静まります。

eshell の中だと ENV["TERM"]dumb になっているので、このときだけ simple にするのもいいかもしれません。

ちなみに上の設定を見るたびに simple って結局どういう状態だっけと私は毎回わからなくなります。

対策2. screenshot_opener gem を使う

screenshot_opener を使うと対策1をしてくれた上にスクリーンショットを、open コマンドで開いてくれるようになります。linux の場合は xdg-open や gnome-open を使ってくれます。

RSpec 経由の System Test (System Spec) では次の設定を追加すると動きました。

rails_helper.rb の RSpec.configure ブロックの中へ
config.include ScreenshotOpener, type: :system

参照

[Rails]System Testsでスクリーンショットの表示をどうにかする
http://y-yagi.tumblr.com/post/166896745740

Rails 5.1のSystemTestCaseを試してみた
https://qiita.com/jnchito/items/4d01f2faa1deee36bd27

rspec-rails 3.7の新機能!System Specを使ってみた
https://qiita.com/jnchito/items/c7e6e7abf83598a6516d

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1