开发的时候,所有测试运行一遍需要 10 分钟左右, 所以,我选择只运行和我当前工作有关的,某几个测试。
BTW 因为我改动代码的范围比较大,所有没有使用 spork
ery@tkpad:rails_app:$ rake test TEST=test/functional/day_reports_controller_test.rb ery@tkpad:rails_app:$ rake test TEST=test/functional/month_reports_controller_test.rb
该方法的缺点是,运行 n 个测试,需要加载 n 次 rails 环境, 如果,运行 10 个测试,需要加载 10 次, 非常耗时,让我难以忍受,虽然我忍受 N 年了。
我 google 了一圈,木找到我喜欢的解决方案。 于是自己写了一个 bash 脚本。
ery@tkpad:rails_app:$ suitup-multi-test-prepare ery@tkpad:rails_app:$ suitup-multi-test-add test/functional/day_reports_controller_test.rb ery@tkpad:rails_app:$ suitup-multi-test-add test/functional/month_reports_controller_test.rb ery@tkpad:rails_app:$ suitup-multi-test-run
RUBY_MULTI_TEST="/tmp/ruby_multi_test.rb"
function suitup-multi-test-prepare { sudo rm $RUBY_MULTI_TEST 2> /dev/null }
function suitup-multi-test-add {
WORK_FOLDER=pwd
echo "require '$WORK_FOLDER/$1' " >> $RUBY_MULTI_TEST
}
function suitup-multi-test-status { cat $RUBY_MULTI_TEST 2> /dev/null }
function suitup-multi-test-run { suitup-multi-test-status ruby -I test/ $RUBY_MULTI_TEST }