ヘッド有りブラウザーで動きみたいときもある。
$ brew install chromedriver
# test/test_helper.rb:
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.javascript_driver = :chrome
ヘッド有りブラウザーで動きみたいときもある。
$ brew install chromedriver
# test/test_helper.rb:
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.javascript_driver = :chrome
teardownも同じくどっちでも変わらないと思ってた。しかし、前者は上書きだけど後者は親クラスのsetupも呼んでくれるので後者の方が良い。例えば下記みたいにintegrationテストだけは全部js実行できるブラウザでテストしたいけどいちいち書いてられない場合。
# test/test_helper.rb:
class ActionDispatch::IntegrationTest
setup do
Capybara.current_driver = Capybara.javascript_driver
end
end
# test/integration/post_comment_test.rb:
class PostCommentTest < ActionDispatch::IntegrationTest
setup do
sign_in('foo@example.com', 'password')
end
test 'post a comment' do
(...)
end
end
super
が要らないのは気持ちいい。
単純にテストの後処理としてのサインアウトだったらcookieを消す方が速い。
page.driver.browser.clear_cookies
サインアウト機能のテストでよくある。visit
メソッドだとgetしか飛ばせない。
実際にサインアウトリンクをクリックするのはサインアウトのテストだったらいいけど、他のテストの後処理として使う場合はすごく遅くなりそうで嫌だ
deviseには下記のような設定ができるらしいけど、これテストしてることになんの?って気がするので却下。
config.sign_out_via = Rails.env.test? ? :get : :delete
これで行けた。
page.driver.submit :delete, '/users/sign_out', {}
Engine Yardが9月1日から価格改定したみたい。
従量課金って金額計算が面倒だからこうやって何となくでいいから出してもらえるとわかりやすい。受託開発の時とか、お客さんに見せやすいし。
怖話もこの価格改定で安くなるはずだけど夏終わりでトラフィック落ちてきてるから悲しい・・・。
プロジェクト内で単数形と複数形が混在してて気になった。thoughtbotのprojectを幾つかみたけどみんなfactories.rb1ファイルに全部書いてた。
@komagata 同じことを悩んだことあり。generatorが自動生成する時は複数形な気がするので、そちらに揃えることにしてます。
— Junya Ogu®a (@junya) 2014, 8月 19
@yoshuki @junya ありがとうございます。generatorが無理やり複数形にしてくれますね!http://t.co/2ZWnwC7fTU
— Masaki Komagata (@komagata) 2014, 8月 19
$ rails g factory_girl:model user
create spec/factories/users.rb
複数形で書きましょう。
EngineYardCloudが価格改定したのでそれにともなって怖話ではちょっと古いc1.mediumというEC2のインスタンスを使ってたので@yandoさんおすすめのm3.mediumに変えてみました。
vCPUが減る代わりにメモリはほぼ倍増、起動ディスクはSSDになる上に価格がかなり抑えられるということでこれで賄えれば万々歳ですね。夏でアクセス増えてる怖話の経費削減に大きく影響しそうです。
そもそも新しい種類のインスタンスということで見えないところもだいぶ新しくなってそうですし、期待です。
githubでprivateなorganizationリポジトリ(仕事のとかね)は同リポジトリ内に別ブランチを作って、そこからmasterにPRを送るという運用をしてました。
というかそういうとこが多いと思う。
同一リポジトリのbranchからmasterにpull requestする - komagata
@milkcocoa「privateなorganizationなreposからforkしたやつは無料のままprivateでつかえますよ。」
しばらくは"見"に回ってたんですが、自分のrepos(komagata/kowabanaとか)からPRする方式を試しています。どういうのが普通なのかわからないので自分のやり方を晒します。
forkしてきたkomagata/kowabanaをoriginにし、organizationの大本をupstreamというremote名で登録する。
origin内で修正pushして、これでOKとなったらPRを送る
$ git pull-request -b fjordllc:master
これのいいところは複数人で使ってるfjordllc/kowabanaといったorganizationリポジトリのブランチにゴミが残らないこと。pushを含めてPR寸前まで自分のreposの中で作業してるのでゴミがorganizationに行かない。
PRをマージした時DELETEボタンで消す癖を付けておけばいいが、なんだかんだで忘れてたり、いなくなった人がやってたbranchが残ってたりして消していいか迷う。
逆に困る点は、CircleCIやHoundCIなどのpushしたら色々やってくれる系のサービスはfjordllc/kowabanaしか対象じゃないので自分のreopsにpushした時点じゃ動かないところ。
かと言って参加メンバー全員のforkまでCI対象に含めるのもダルい。
なんとかならないかなー。みなさんどうやってるのか教えていただけると嬉しいです。
下記のブログのエントリーのお陰でで解決。感謝です。
Gitでリモートブランチを消してもgit branch -aに出てくる件 - chulip.org
確かにgit fetch
のmanには書いてあるんだけど、git branch
のmanを見に行っちゃうし、多すぎてどこのman見に行けばいいのかわからない。
まあ俺は一生gitをマスターすることができないんだろうな・・・。
% git fetch --prune
x [deleted] (none) -> origin/add-random-featured
x [deleted] (none) -> origin/add_partial
x [deleted] (none) -> origin/award-badge
x [deleted] (none) -> origin/boards_anonymous_comment
x [deleted] (none) -> origin/change-story-end-menu-link-from-featured-to-top
x [deleted] (none) -> origin/convert-comic-frames
x [deleted] (none) -> origin/cookie-error
x [deleted] (none) -> origin/css-bug-in-read-comics
x [deleted] (none) -> origin/delete_comments
x [deleted] (none) -> origin/en-add-help-mokuji
x [deleted] (none) -> origin/enable-comment-from-cross-domain
x [deleted] (none) -> origin/exclude-authors-comments-from-recents
x [deleted] (none) -> origin/extract-simple_seed
x [deleted] (none) -> origin/feature-disable-anonymous-comments
x [deleted] (none) -> origin/fix-red-button-in-urban-legend
x [deleted] (none) -> origin/ignore-violation
x [deleted] (none) -> origin/iphone-icon-120
x [deleted] (none) -> origin/look-back-mode
x [deleted] (none) -> origin/modify-thank-you-mail
x [deleted] (none) -> origin/more_users_info
x [deleted] (none) -> origin/notice-tag-by-email
x [deleted] (none) -> origin/oulu-setup
x [deleted] (none) -> origin/poltergeist
x [deleted] (none) -> origin/rails4.1.1
x [deleted] (none) -> origin/random-story
x [deleted] (none) -> origin/remove_link
x [deleted] (none) -> origin/rmlink
x [deleted] (none) -> origin/scarystory
x [deleted] (none) -> origin/show-spoiler-checkbox-only-on-comic-and-story-pages
x [deleted] (none) -> origin/update-rails-from-3.2-to-4.0
とにかくスッキリしました。
capybara-webkitのバージョンをアップしたら下記のエラー。
dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
Referenced from: /usr/local/lib/QtGui.framework/Versions/4/QtGui
Reason: image not found
capybara-webkitはメジャーバージョンが上がったので依存するライブラリも大きく上がったようだ。(多分今までのqt4はlibpng12を使ってたんだろう)
$ brew update && brew upgrade
$ brew reinstall qt4
$ brew reinstall lbpng
動いた。