Introduction to guard + rspec

36
Guard Rspec + Spork による自動テスト による自動テスト 小崎玄顕 小崎玄顕 平成23101() KOZAKI Tsuneaki Slippy on github Blog Forever Undecided Twitter @koko_u

description

presentation file for minamirb

Transcript of Introduction to guard + rspec

Page 1: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

小崎玄顕小崎玄顕

平成23年10月1日(土)

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 2: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

自己紹介自己紹介名前名前 : 小崎小崎 玄顕玄顕 (こざきこざき つねあきつねあき )ついったついった : @koko_u職業職業 : SIer, COBOL-er, Excel-er, いろいろいろいろ…趣味趣味 : 読書読書 (読むだけ読むだけ )、音楽、音楽 (聞くだけ聞くだけ )、プログラミング、プログラミング (パクるだけパクるだけ )興味興味 (soft): Ruby, Rails, Scala, Play!, ...興味興味 (hard): Sony Reader, Android, ThinkPad, Happy HackingKeyboard, ...

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 3: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

今日のお題今日のお題自動テストの環境として自動テストの環境として Guard + Spork を紹介しますを紹介します実際に簡単なサンプルプロジェクトを作ります実際に簡単なサンプルプロジェクトを作ります

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 4: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

アンケートアンケートguard を知っている?を知っている?spork を知っている?を知っている?

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 5: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

そもそもなぜテストが必要なのか?そもそもなぜテストが必要なのか?

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 6: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

実行しないと正しいことを確かめられないからですね実行しないと正しいことを確かめられないからですね

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 7: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

例えば例えば...01 # wrong_hello.rb02 def wrong_hello(name)03 if name.nil?04 puts "you are nil boy"05 elseif name.empty?06 puts "you are empty girl"07 else08 puts "hello #{name}"09 end10 end

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 8: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

普段は何ごともなく動く普段は何ごともなく動く1 require './wrong_hello'2 wrong_hello 'koko_u'3 4 # => hello koko_u

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 9: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

でも実は間違えているでも実は間違えている

...あれ? empty girl は?

1 require './wrong_hello'2 wrong_hello ''3 4 # => hello

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 10: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

すごく間違えてるすごく間違えてる ...

例外が飛んできたよ!

1 require './wrong_hello'2 wrong_hello nil3 4 # => `wrong_hello': undefined method `empty?' for nil:NilClass

(NoMethodError)

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 11: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

ささいなささいな typo でもでもその行がその行が実行されるまでエラーが発見できな実行されるまでエラーが発見できないいテストするしかないですねテストするしかないですね

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 12: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

なぜなぜ Guard + Spork なのか?なのか?なるべくストレスなくテストを実行したいテスト結果が notify などで表示されると、なんとなくデキる気がする

他の選択肢は他の選択肢はautotest (Zentest)よくわからなかった

watchr新規にファイルを追加した時にうまく動かなかった

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 13: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

デモデモ実際に実際に guard とと spork が動いている所をまず見せますが動いている所をまず見せます1. デモプロジェクトの直下でデモプロジェクトの直下で guard を起動すると、まずは全を起動すると、まずは全てのテストが実行されますてのテストが実行されます

2. その後、テストファイルもしくはソースを変更する度に対応その後、テストファイルもしくはソースを変更する度に対応するテストが実行されますするテストが実行されます

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 14: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

Spork の利点の利点自動的にテストを実行しているのは自動的にテストを実行しているのは Guard の機能ですの機能ですただ、ご存知のようにただ、ご存知のように Rails のテストの実行早くありません。のテストの実行早くありません。自動テストで頻繁にテストを実行する時、「すぐに」結果が返ってこない自動テストで頻繁にテストを実行する時、「すぐに」結果が返ってこないとイライラしてしまうとイライラしてしまうそこで、そこで、Spork があらかじめがあらかじめ Rails の環境ロードまでを済ませておいて、の環境ロードまでを済ませておいて、リクエストに応じてテストを実行しますリクエストに応じてテストを実行します

どのくらい実行時間に差があるかも確認してみましょうどのくらい実行時間に差があるかも確認してみましょう

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 15: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

能書きが長すぎた。実際にやってみましょう能書きが長すぎた。実際にやってみましょう

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 16: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

前提とする環境前提とする環境OS : Ubuntu 11.04Ruby : 1.9.2-p180Rails : 3.1.0Testing Framework : RSpecMac の人は自力で頑張って下さい。多分の人は自力で頑張って下さい。多分 growl に使うに使う gem が違うくらが違うくらい?い?

Windows の人はごめんなさい。の人はごめんなさい。

Rails 3.0.x でも動くはず。せっかくリリースされたのででも動くはず。せっかくリリースされたので 3.1.0 でやりますでやりますが、が、3.1の新機能は一切でてきません。の新機能は一切でてきません。

Testing Framework はは RSpec。。Test::Unit でもでも gem を差し替えるなどを差し替えるなどすればできるはずですが、時間がなくてフォローできませんでした。すればできるはずですが、時間がなくてフォローできませんでした。

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 17: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

お品書きお品書き1. サンプルのサンプルの Rails プロジェクトを作成しますプロジェクトを作成します (6ページページ )2. Spork でテストを素早く実行できるよう設定しますでテストを素早く実行できるよう設定します (4ページページ )3. Guard を使ってテストが自動的に実行されるよう設定しますを使ってテストが自動的に実行されるよう設定します (4ページページ )

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 18: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

サンプルとするサンプルとする Rails プロジェクトを作成しますプロジェクトを作成します(1/6)$ rails new guard_demo -T --skip-bundle create create README create Rakefile create config.ru create .gitignore create Gemfile create app...

Testing Framework をデフォルトのをデフォルトの Test::Unit ではなくではなく RSpec に差しに差し替えるので、替えるので、 -T オプションでオプションで test ディレクトリの作成を抑止していますディレクトリの作成を抑止していますRails 3.1.0 から自動的にから自動的に bundle install されてしまうので、これも抑止されてしまうので、これも抑止しています。しています。Gemfile を修正してを修正して bundle install するので、このタイミングですることするので、このタイミングですることないんじゃ?ないんじゃ?

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 19: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

サンプルとするサンプルとする Rails プロジェクトを作成しますプロジェクトを作成します(2/6)Gemfile の最後に下記のコードを追加

spork は 0.9.0.rc 以上でないと Rails 3.0 以降で動かないようですMac をお使いの人は最後の 2行を下記のように変更すればいいらしい

1 group :test, :development do2 gem 'rspec-rails'3 gem 'spork', '~> 0.9.0.rc'4 gem 'guard-rspec'5 gem 'guard-spork'6 gem 'rb-inotify'7 gem 'libnotify'8 end

1 group :test, :development do2 gem 'rspec-rails'3 gem 'spork', '~> 0.9.0.rc'4 gem 'guard-rspec'5 gem 'guard-spork'6 gem 'rb-fsevent' 7 gem 'growl_notify'8 end

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 20: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

サンプルとするサンプルとする Rails プロジェクトを作成しますプロジェクトを作成します(3/6)やっと bundle install します$ bundle install --path=vendor/bundleFetching source index for http://rubygems.org/Installing rake (0.9.2) Installing multi_json (1.0.3) Installing activesupport (3.1.0) Installing bcrypt-ruby (3.0.0) with native extensions Installing builder (3.0.0) Installing i18n (0.6.0) Installing activemodel (3.1.0) ...

ここでここで --path オプションを付けないと、最初にオプションを付けないと、最初に --skip-bundle した意味した意味がなくなるよがなくなるよ

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 21: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

サンプルとするサンプルとする Rails プロジェクトを作成しますプロジェクトを作成します(4/6)RSpec を使うためのおまじないを実行$ rails generate rspec:install create .rspec create spec create spec/spec_helper.rb

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 22: Introduction to guard + rspec

Guard Rspec + Spork による自動テストによる自動テスト

サンプルとするサンプルとする Rails プロジェクトを作成しますプロジェクトを作成します(5/6)デモ用のアプリケーションをでっち上げます$ rails generate scaffold Article name:string title:string content:text invoke active_record create db/migrate/20110905165645_create_articles.rb create app/models/article.rb invoke rspec create spec/models/article_spec.rb route resources :articles invoke scaffold_controller...

RSpec でテストの雛形が作られます

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 23: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Guard Rspec + Spork による自動テストによる自動テスト

サンプルとするサンプルとする Rails プロジェクトを作成しますプロジェクトを作成します(6/6)データベースを作って$ rake db:migrate RAILS_ENV=test

テストが動くことを確認$ bundle exec rspec spec........................**....

Pending: Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r # Not Yet Implemented # ./spec/models/article_spec.rb:4 ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_ # Not Yet Implemented # ./spec/helpers/articles_helper_spec.rb:14

Finished in 0.35449 seconds30 examples, 0 failures, 2 pending

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 24: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Guard Rspec + Spork による自動テストによる自動テスト

Spork でテストを素早く実行できるよう設定しますでテストを素早く実行できるよう設定します(1/4)spork を使うためのおまじないを実行$ bundle exec spork --bootstrapUsing RSpecBootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 25: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Guard Rspec + Spork による自動テストによる自動テスト

Spork でテストを素早く実行できるよう設定しますでテストを素早く実行できるよう設定します(2/4)spec_helper.rb を編集しろ、と言われるので言われるままに編集01 Spork.prefork do02 # Loading more in this block will cause your tests to run03 # if you change any configuration or code from libraries l04 # need to restart spork for it take effect.05 06 !! ここいら辺にすべてのコードをぶちこむ !!07 end08 09 Spork.each_run do10 # This code will be run each time you run your specs.11 12 end

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 26: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Guard Rspec + Spork による自動テストによる自動テスト

Spork でテストを素早く実行できるよう設定しますでテストを素早く実行できるよう設定します(3/4)spork の稼動確認をします1. 別のターミナルを立ち上げて、別のターミナルを立ち上げて、spork サーバーを起動しますサーバーを起動します

$ bundle exec sporkUsing RSpecPreloading Rails environmentLoading Spork.prefork block...Spork is ready and listening on 8989!

2. rspec でテストを実行してみますでテストを実行してみます$ bundle exec rspec spec --drb

--drb オプションを付けるとオプションを付けると spork サーバー側でテストを実行してくれまサーバー側でテストを実行してくれますすspork サーバーを起動している側のターミナルにサーバーを起動している側のターミナルに Running tests with... と出力されていればと出力されていれば OK

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 27: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Guard Rspec + Spork による自動テストによる自動テスト

Spork でテストを素早く実行できるよう設定しますでテストを素早く実行できるよう設定します(4/4)いちいちオプション --drb 付けるの面倒ですよね。.rspec ファイルに書いておきましょう

--colour オプションは既に rails g rspec:install した時点で書かれています/usr/bin/time -p bundle exec rspec spec/model/article_spec.rb を実行してみて、時間が早くなっていることも確かめましょう

1 --colour2 --drb

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 28: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Guard Rspec + Spork による自動テストによる自動テスト

Guard を使ってテストが自動的に実行されるようしますを使ってテストが自動的に実行されるようします(1/4)ようやく guard の設定です。でもすることは簡単$ bundle exec guard init sporkWriting new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/Guardfilespork guard added to Guardfile, feel free to edit it

$ bundle exec guard init rspecrspec guard added to Guardfile, feel free to edit it

guard init spork を先に実行して下さい。実行した順に設定が適用されるので、逆順で Guardfile を作成した場合は適当に順番を入れ替えましょう。

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 29: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/Guardfile

Guard Rspec + Spork による自動テストによる自動テスト

Guard を使ってテストが自動的に実行されるようしますを使ってテストが自動的に実行されるようします(2/4)ひとまずこれでおっけー。動かしてみましょう$ bundle exec guardGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'Starting Spork for RSpec Using RSpecPreloading Rails environmentLoading Spork.prefork block...Spork is ready and listening on 8989!Spork server for RSpec successfully startedGuard::RSpec is running, with RSpec 2!Running all specsRunning tests with args ["--color", "--format", "progress", "--format", "Guard"...........................*....

Pending: ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro # Not Yet Implemented # ./spec/helpers/articles_helper_spec.rb:14

Finished in 0.47565 seconds32 examples, 0 failures, 1 pendingDone.

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 30: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

Guard Rspec + Spork による自動テストによる自動テスト

Guard を使ってテストが自動的に実行されるようしますを使ってテストが自動的に実行されるようします(3/4)テストを書くと、自動的に実行されることを確認しましょう。

自動的に実行されて、テスト失敗しましたか?RSpec の書き方はこちらでどうぞ RSpec を使い始める人が読むべき N 個のドキュメント

01 # -*- coding: utf-8 -*-02 # spec/models/article_spec.rb03 require 'spec_helper'04 05 describe Article do06 context "は name と title が必須" do07 subject { Article.new }08 it { should be_invalid }09 it { should have(1).error_on(:title) }10 it { should have(1).error_on(:name) }11 end12 end

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 31: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

Guard Rspec + Spork による自動テストによる自動テスト

Guard を使ってテストが自動的に実行されるようしますを使ってテストが自動的に実行されるようします(4/4)モデルに適当なバリデーションを追加しましょう

やはりテストが自動的に実行され、今度はパスしましたか?モデルのテストしかしていないことに注意して下さい。全部のテストを実行(エンターするだけ)するとコントローラ側でエラーになっていることがわかります

1 # app/models/article.rb2 class Article < ActiveRecord::Base3 validates :title, :name, :presence => true4 end

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 32: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

Guard Rspec + Spork による自動テストによる自動テスト

お疲れさまでしたお疲れさまでした

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 33: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

Guard Rspec + Spork による自動テストによる自動テスト

参考にしたサイト参考にしたサイトguard のサイトのサイトspork のサイトのサイトCuriosity Drives Me 基本このサイトをまる写し基本このサイトをまる写し

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 34: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

Guard Rspec + Spork による自動テストによる自動テスト

その他便利そうなその他便利そうな Guard-xxxguard-annotateモデルのスキーマを変更すると、自動的にモデルクラスにその内容をコメントとして書いてくれる

guard-livereloadビューが変更された時に、自動的にブラウザでページをリロードしてくれる。あらかじめ、chrome などにadd-onを追加しておく必要あり

そのほか色々あるらしい List of avairable guards

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 35: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

Guard Rspec + Spork による自動テストによる自動テスト

課題課題Guardfile の修正について

結局自動的に作成された結局自動的に作成された Guardfile を修正することなくここまで来ましを修正することなくここまで来ましたた監視ファイルを増やしたり、変更したい場合は適当に修正しましょう監視ファイルを増やしたり、変更したい場合は適当に修正しましょう

Spork の設定spork の設定も全然変更していませんの設定も全然変更していません実際には実際には Spork.each_run { } に適当に設定を追加する必要がありまに適当に設定を追加する必要がありましょうしょう詳細は詳細はさっきの参考サイトさっきの参考サイトを見てねを見てね困ったら再起動でもわりとイけます。手動で再起動するのが面倒になっ困ったら再起動でもわりとイけます。手動で再起動するのが面倒になったり、不可解なエラーが頻繁に出てから考えても遅くはないたり、不可解なエラーが頻繁に出てから考えても遅くはない

KOZAKI Tsuneaki Slippy on githubBlog Forever Undecided Twitter @koko_u

Page 36: Introduction to guard + rspec

$ rails generate scaffold Article name:string title:string content:text

Article add some examples to (or delete) /home/kozaki/minamirb/intro_guard_r

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro_

Bootstrapping /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helDone. Edit /home/kozaki/minamirb/intro_guard_rspec/guard_demo/spec/spec_helper

Writing new Guardfile to /home/kozaki/minamirb/intro_guard_rspec/guard_demo/GuardfileGuard is now watching at '/home/kozaki/minamirb/intro_guard_rspec/guard_demo'

Running tests with args ["--color", "--format", "progress", "--format", "Guard"

ArticlesHelper add some examples to (or delete) /home/kozaki/minamirb/intro

おしまいおしまい