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

ハイパーニートプログラマーへの道

頑張ったり頑張らなかったり

【RSpec】 Capybara + poltergeist にて rspec failed to detect theversion of the executable at '/usr/bin/phantomjs'

プログラミング Ubuntu Rspec phantomjs Ruby on Rails

Ubuntu16.04上に構築しているRailsにてfeature spec (capybara + poltergeist) を走らせたときに

rspec failed to detect theversion of the executable at '/usr/bin/phantomjs' とかなんとかエラーでこける。

ちょっと古いですがこちらを見ると

stackoverflow.com

apt-getでインストールしたphantomjsは削除して、npmで入れてるみたい?

さらに調べると、apt-getで入れるphantomjsだと問題があるみたい。

obel.hatenablog.jp

この方もnpmで入れていますね。

というわけでまずUbuntuにnpmをインストールしました。

しかしapt-get だと入るバージョンが古かったり、node でなくて nodejs コマンドだったりします。

よって n package を使用します。

github.com


Specs

rails about で確認(バージョン古め・・・)


n packageの導入 〜 node のインストールまで

まずは普通にapt-getnodejs & npm のインストール

$ sudo apt-get install -y nodejs npm

次に n packageの導入

$ sudo n stable
$ echo $PATH # /usr/local/bin が含まれているかどうか確認 詳しくは後述
$ exec $SHELL # shellの再読み込み

参考にしたのはこちらの記事ですが

http://qiita.com/seibe/items/36cef7df85fe2cefa3ea

sudo n stable の後にsymlink を張っていますが、コメントにて

/usr/local/binが$PATHに含まれている環境においてはこのsymlinkは不要で、exec $SHELLでシェルを読み込み直すだけで使うことができました。

とありましたので、それを採用することにしました。


node, npm のバージョン確認

$ node -v
v7.6.0
$ npm -v
4.1.2

古いほうのバージョンは忘れてしまった・・・。

はじめに入れた(古いほうの)nodejs, npm の削除

$ sudo apt-get purge -y nodejs npm

phantomjs のインストール

$ sudo npm install -g phantomjs

nodejs-legacy は入れていません。

参考記事:

obel.hatenablog.jp

これでfeature testsが走るようになったぞい。ふぅ・・・。