ついに仕事で触っている PHP のコードがほんの一部のテストとは言え CI に乗った。 正直これは感動ものだ。 今回はここに至るまでの長大な物語をダイジェストでお届けしようと思う。 有史以前PHP 3 で作られた 1 URI : 1 スクリプト + 共通関数 時代 当然のように PHP と HTML と SQL 混在まともなテスト環境がなかったので似た環境をどうにか作るパスとか絶対で埋め込みまくりなのでとりあえず共通のパス情報の変数に差し替えまくりテスト環境用のコードと本番環境用のコードが違うオール目視 つらかった。 みなさんの予想通りバージョン管理なんてものは存在しなかった。 素朴なPHPを徐々にclassにclass になれば phpdoc を書きやすくなるいきなり実行しないようにすればテストしやすくなる これは後から気づいたんだけど、結局フロントはロクに自動テストできてない一時期 p
I spent a little time working on some tests for a legacy web app that we plan to re-write in Ruby. Before the big re-write, I thought it would be wise to write some integration tests to call the app via http and verify responses. I wanted to use vanilla http and not have the overhead of launching a browser and was frustrated that Capybara didn’t have a driver to suit my needs. I started down the p
※ capybara は 2.0 で request spec ではなく feature spec で動くようにするなど API 変更が入っています。下のエントリは capybara 1.x 時代のものなので、gem のバージョンも 1.x になるように制限してあります。 PHP も end-to-end は RSpec で書こうと思っているという話は先日書きましたが、以前は capybara-mechanize を単独で動かしただけで rake で回せる環境になってなかったので、それを最小限の構成で準備してみました。 minimal rspec-capybara-mechanize env — Gist を clone して bundle install すればだいたいすぐ使えます。中身はこんな感じ。短い。ステキ。 は Capybara のドキュメント見ると Capybara::DSL
■ [capybara][ruby] capybara-mechanize を使ってみた capybara はデフォルトの rack_test だとRackアプリとしてテストを実行するんだけど、tDiary は Rack と CGI のハイブリッドなので Capybara では CGI 経由で呼び出された部分のテストができなくてだいぶ困る。というかこれでバグが出たりしている。 そこで capybara-mechanize ですよ。 使い方はだいたいいつものGemfileに追加してから default_driver を変えるだけなんだけど、mechanize (もしくはselenium)で外部にあるサイトをテストするには Capybara.app_host = 'http://www.google.com' のように指定する必要がある。 とりあえずこの方法を使って tDiary では Web
WordPressのようにPHPなどでできたWebサイトの振る舞いを自動でテストしたいと思い、仕組みを作ることにしました。 きっかけは、設定が間違ってて、トップページは正常に表示されているにも関わらず、個別のエントリページではエラーになってることがあったためです。 別にWordPressに限った話ではなく、Pythonとかで開発してても必要になる話なので、簡単なところから始めてみようというわけです。 なお、Rubyの世界をあまりわかってないので、Ruby周りの勉強を兼ねてます。間違っていたら教えてもらえるとありがたいです。 やりたいこと ページがアクセスできるかチェックしたい。 なるべくサーバーとか立てずに簡単にやりたい。 将来的にはちゃんとしたブラウザでの動作チェックに応用したい。 構成 今回の受け入れテストは、以下のライブラリを使って実現します。 Cucumber Capybara C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く