今までコードのテストなんて気にしたことなかったのですが、Rails チュートリアル曰く「ちゃんとやったほうがいいよ〜」とのことだったので、やります。

忘れそうなのでそのテスト関連のメモです。

 

事前準備

Gemfileに下記のようにテスト用のgemを書き込んで bundle install

group :test do
gem 'rails-controller-testing', '1.0.2'
gem 'minitest-reporters', '1.1.14'
gem 'guard', '2.13.0'
gem 'guard-minitest', '2.4.4'
end

 

minitest-reportersの使い方

test/test_helper.rb にかきを追記


require 'minitest/reporters' Minitest::Reporters.use!

 

rails t を実行すると表示結果に色がつきます!

 

guardの使い方

bundle exec guard init でguardの初期化

 

チュートリアルに上がっている下記を Guardfile にコピペ。これで良しなにやってくれるっぽいです。中身は気が向いたときに追ってみます。また、これはRailsのチュートリアルに最適化されたものなので、プロジェクトごとに修正が必要です。

 

そのままだと Guard使用時にSpringとGitが競合して色々問題らしいです。知らんけど。

それを防ぐために.gitignoreファイルにspring/ディレクトリを追加します。


echo "# Ignore Spring files. /spring/*.pid" >> .gitignore

 

bundle exec guard を実行。下図のようになるので、このターミナルはそのまま開きっぱなしにしておきます。そうすると、コントローラーなどのコードを変更した時に自動でテストが走ります。

手動でテストを実行したい時はこのguard(main)プロンプトでリターンキーを押下します。

 

テストがなんか重い。。と感じたら

Springのバグかなんかでテストのパフォーマンスが低下することがあるそうです。

なんか重いなーと思ったらプロセスをチェックし、Springプロセスをとりあえず殺します。

 

springプロセスを確認


ps aux | grep spring

 

pid(プロセスid)を指定してkill。pidはps aux 表示結果の左から2番目のカラム。


pkill -15 xxxx

 

プロセス名(この場合はspring)を指定して殺っちゃうこともできる。


pkill -15 -f spring

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*