phantomjsをインストールしてみる
今回はphantomjsをインストールしてみました!
- phantomjsとは
- インストール
- サンプル
- 感想
こんなかんじで書いてきます。
ちなみに参考はこちらフレームワークで実践! JavaScriptテスト入門(2):PhantomJSとJasmineで振る舞い駆動開発なJavaScriptテスト (1/3) - @IT
phantomjsとは
先の記事によると、「ブラウザなしでJSを動作させるツール」らしいです。
つまりテストがコマンドラインからできて楽チンみたいな感じでしょうか。
というか現段階ではphantomjsのこと一切知りません笑
一緒に見て行きましょう。
インストール
何はなくともとりあえずphantomjsをインストールしてみましょう。
環境はmac
インストールにはbrewをつかいました。
まずは次のように入力
brew search phantomjs
すると
phantomjs
となるのであるなと。
次に
brew install phantomjs
すると
Warning: Your Xcode (4.3.3) is outdated Please install Xcode 4.5. Warning: It appears you have MacPorts or Fink installed. Software installed with other package managers causes known problems for Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again. ==> Downloading http://phantomjs.googlecode.com/files/phantomjs-1.7.0-macosx.zip ######################################################################## 100.0% /usr/local/Cellar/phantomjs/1.7.0: 4 files, 10M, built in 32 seconds
xcodeのバージョンアップしたいです…
最後にシンボリックリンクを作っておしまい。
sudo ln -s ~/usr/local/Cellar/phantomjs/1.7.0
早速バージョン確認
phantomjs --version
すると
1.7.0
というわけでインストール完了!!
サンプル
何はなくともとりあえずhello worldから。
hello.js
console.log('Hello, world');
phantom.exit();
これをターミナルで実行
phantomjs hello.js
すると
Hello, world
なんとターミナルだけでJSが実行できました!!
というわけでfizzbuzz(参考テスト駆動開発でFizzBuzz問題を解く - nigoblog)
fizzbuzz.js
for(i=1; i< 30;i++){ if(i%3 == 0 && i%5 == 0){ console.log('fizzbuzz'); }else if(i%3 == 0){ console.log('fizz'); }else if(i%5 == 0){ console.log('buzz'); }else{ console.log(i); } }
phantomjs fizzbuzz.js
1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16 17 fizz 19 buzz fizz 22 23 fizz buzz 26 fizz 28 29
いちいちデベロッパーツールを使わないで確認ができます。
フィボナッチ数列(意外にブログで取り上げてなかった
fib.js
function fib(n){ if(n == 0){ return 1; } else if(n == 1){ return 1; } else { return fib(n-1) + fib(n-2); } } for(i=0;i< 20;i++){ console.log(fib(i)); }
phantomjs fib.js
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
サンプルはこれくらいで。
感想
とりあえずまだその効果を存分に活かせてはいないと思うけど、
コマンドラインでもJSを実行できるのは相当楽。
これからどんどん使い方を探って行きたいと思います。
テストコードやCIツールなんかと相性がいいかな??
herokuとかもブラウザを使わずテストできるからよいかも。
というわけで以上phantomについてでした!!