大江戸Ruby会議06 トーク資料
これは Ruby アドベントカレンダー 24 日目の記事です。 Railsを長く開発していると機能を追加していくにつれてテストコードも肥大化し、初めのうちは一瞬で終わっていたrspecも気がつけば数十分かかるようになっていたということも多いと思います。テストをCIで回していると、結果が得られるまで作業が止まることになるので、テスト時間の肥大化は結構大きなインパクトを持ってきます。 テストの中にボトルネックがある場合それを解消することである程度の高速化ができますが、純粋にテストの数が多いということになると、全てのテストを実行するのを諦めないのであれば、テストを並列に実行するのが高速化のアプローチとなります。 テストを並列実行するgem テストを並列に実行するgemはすでに世の中にいくつもあります。 rrrspec Cookpad社が作っているrrrspecはRSpecを複数サーバで分散実行し
すでに目標額の倍以上、1,125.83ドル(約12万3000円)に到達! このブログの読者の方はすでにご存知だと思いますが、熊本地震の災害支援のために2016年4月25日から2016年5月31日まで「Everyday Rails - RSpecによるRailsテスト入門」のチャリティセールを実施しています。 収益はなんと昨日(2016年5月24日)の時点で 1,125.83ドル(約12万3000円) になりました! 売上部数でいうと、合計114部になります。 当初の目標は500ドルでしたが、すでに目標額の倍に到達してしまいました。 これはとても嬉しい驚きです。 購入してくださったみなさん、どうもありがとうございました! チャリティセールは残り1週間です! このチャリティーセールは5月31日までなので、今日を含めるとあと7日で終了します。 6月1日からは最低購入価格を9ドルから16ドル(通常
TDDでRSpecを書くにあたって、どれだけ効率的に効果的なテストが書けるかは、品質を高めていく上ですごく大切なことだと思います。 今回、RSpec3用のドキュメントやWebサイトをいろいろ読みなおして、最近までに特に良かった記事などを中心にまとめ直しました。 RSpec3に入門しようとしている初心者さんや、普段使っているけどもう一度RSpec3の知識を整理したい人にオススメのマトメです! 🗽 TDD/BDDとは?TDD/BDDにおける「振る舞い」の意味するところとは何なのか RSpecに限定された記事ではないですが、BDDの根本的な概念の「振る舞い」についてまとめられた記事です。 これを知っておくことで、ここから先の話がかなりスムーズに理解できるようになると思います。 🎂 まずテスト書いてからコード書くシンプルなチュートリアルはじめてのRSpec - まずテスト書いてからコード書くシ
連載目次 前回の「RailsのテンプレートエンジンSlimの書き方とActionViewのヘルパーメソッド、レイアウトの使い方」までで、Railsの基本的な使い方をMVCで分解して解説してきました。今回はRailsのテストについて解説します。 ある機能を作るにはいろいろな作り方がありますが、より短く分かりやすいコードに変えたとき、アプリケーションの「振る舞い」まで変わってしまうと問題ありですね。そうならないためにアプリケーションの振る舞いをあらかじめ定義しておきます。そしてコードを変えるたび定義通りに動いているかチェックすれば、バグや不具合を減らせそうです。 Railsには、そのためのツールがあり多くの開発現場でテスティングフレームワークとして使われています。まずはツールを使えるようにするところから紹介しましょう。 標準「MiniTest」とデファクトスタンダード「RSpec」 Rails
Ruby on Rails Tutorial*1の9.6 Exercisesを終えた後、"Remember me"というチェックボックスをSign inページに追加しようと思いました。 この本で作成するマイクロブログ「Sample App」は、ログイン後、Cookieに保存する"remember_token"の有効期限日を20年後*2に設定しています*3。[Remember me]チェックボックスをチェックせずに[Sign in]ボタンを押下した場合、このクッキーの有効期限日をセッション終了時になるよう改修してみました。 Sample Appは、RSpec+CapybaraによるTDDで開発されていますので、私もそれに従います。 [追記: 8/29 23:19] 第3版の第8章で[Remember me]チェックボックスを追加するそうです。本記事は、第3版が出版される以前に書いたもので、関
お知らせ またまたQiita記事を投稿したのでそのお知らせです。 今回はこの2本を投稿しました。 今日から使える!RSpec 3で追加された8つの新機能 RSpecで「~ではないこと」を検証するときは expect(x).to_not 、または expect(x).not_to のどちらを使うべきか? この記事を書いた動機 前回、「RSpecの入門とその一歩先へ ~RSpec 3バージョン~」を書いたときもそうだったんですが、僕がこういう記事を書く動機は「こんな内容の記事を自分が読みたかったから」です。 つまり、自分が読みたい記事を自分で調べて書きました。 自分のためにもなるし、他の人の参考にもなるし、一石二鳥ですね! みなさんもこんな感じで「自分が読みたい記事を自分で調べて書いてみる」のはいかがでしょうか? 勉強にもなるし、アウトプットも出せるし、なかなかお得だと思いますよ~。
In this post, I am going to give a step-by-step introduction into how you can do continuous integration testing with Docker. I will be running the rspec test suite of the CloudFoundry project's Cloud Controller component, although the same process can be applied to any Ruby project. I will show how to build Docker images to easily run repeatable tests and how to set-up Jenkins to do it for you in
やけに時間が掛かるテストがあるなと思ったらメソッドにsleepが入ってました。 スタブ化したら早くなるんじゃないかと思って調べてみた。 サンプルコード class User << ActiveRecord::Base def hoge sleep 5 true end end describe "hoge" do it "should be true" do user = User.new user.hoge.should be_true end end テスト実行 rspec user_spec.rb . Finished in 5.01 seconds 1 exampel, 0 failures sleepの5秒がちゃんとかかっております。 最初に考えたのは、sleepはKernelのメソッドだから Kernel.stub(:sleep) でうまくいくんじゃ・・・と思ったら見事反応なし
rspec-rails、3.0.1 がリリースされていますね。インストールして rails g rspec:install とすると、spec/rails_helper.rb という見慣れないファイルが作成されます。これは一体何でしょうか。 rspec-rails のREADMEを読むと、これからは spec/rails_helper.rb に Rails 特有の設定を書き、spec/spec_helper.rbには RSpec の全体的な設定を書く、というようにお作法が変わるそうです。これによって、Railsを必要としないテストを書きやすくなるんだとか。 というわけで、これまで require 'spec_helper' としていた箇所の大部分は require 'rails_helper' に置換してあげる必要がありそうですね。パーフェクト Ruby on Rails のテストの章は
はじめに 前回のブログでもお伝えしたとおり、「RSpec初心者に送るRSpec最強チュートリアル ~RubyMineもあるよ!~」というWeb勉強会を放送しました。 今回はこの勉強会に関する情報を一通りまとめておきます。 過去最高の参加人数! このWeb勉強会はソニックガーデンが主催するSonicGarden Studyの第8回の放送になります。 これまでの最高人数は「第5回・そのテストは本当に必要ですか」の135人だったのですが、今回はこれを超えてなんと192人もの人が参加登録してくれました。 USTREAM上の延べ視聴者数も300人を超えたみたいです。すごい~! SonicGarden Studyに初めて参加する人もたくさんいたようで、この勉強会の認知度が多少上がったんじゃないかなと思います。 参加してくれたみなさん、どうもありがとうございました! 放送の前後はちょっとドタバタ・・・
Myron MarstonMay 21, 2014Update: there’s a Japanese translation of this available now. RSpec 3.0.0 RC1 was released a couple days ago, and 3.0.0 final is just around the corner. We’ve been using the betas for the last 6 months and we’re excited to share them with you. Here’s whats new: Across all gems Removed support for Ruby 1.8.6 and 1.9.1 These versions of Ruby were end-of-lifed long ago and RS
技術部アルバイトの鈴木(@draftcode)です。 クックパッドが内部向けに開発・運用を行ってきた、分散テスト実行システムRRRSpecをオープンソースとして公開しました。RRRSpecは時間のかかる自動テストを分散処理することで、全体のテスト時間の短縮を狙うアプリケーションです。現在クックパッドでは17000を超えるテスト項目があり、マシン一台でテストを実行すると完了まで数時間かかります。このテストを60並列程度の分散処理で行うことで、平均8分から9分程度で完了できるようになりました。また、Amazon EC2のスポットインスタンスを利用することにより、大幅なコスト削減も同時に達成しました。 https://github.com/cookpad/rrrspec 分散テスト実行とは アプリケーションが大きくなるにつれて、自動テストの数も大きくなっていきます。クックパッドでは、非常に多くの
Myron MarstonFeb 21, 2014The RSpec team has released 3.0.0.beta2 and 2.99.0.beta2. This is a huge release that includes tons of new features. I plan to do a full blog post listing and giving examples for all the notable new 3.0 features at a later date. For now, I’ve just got the full release notes. Thanks to all the contributors who helped make this release happen! I also want to thank those of y
はじめに 以前から何度か紹介しているRSpec本の翻訳が終了し、ついに販売を開始しました! 提供フォーマットはMOBI(Kindle)、EPUB(iBooks)、PDFで、下記のページから購入できます。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 今回は改めてこの本の紹介を書いてみようと思います。 「Everyday Rails - RSpecによるRailsテスト入門」ってどんな本? 「Everyday Rails - RSpecによるRailsテスト入門 ~テスト駆動開発の習得に向けた実践的アプローチ~」はタイトルの通り、RSpecを使ったRailsの自動テストを説明した技術書です。 内容としては比較的易しめで、そこまで高度な話題は出てきません。なのでRSpecの未経験者~中級者かつ、Railsを使って開発している技術者がターゲット層にな
RSpec is a Behaviour-Driven Development tool for Ruby programmers. BDD is an approach to software development that combines Test-Driven Development, Domain Driven Design, and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD. Documentation This is the official documentation site for RSpec. Much of the document
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く