spork-rails と spork-minitest がインストールされた Rails 3.2 プロジェクトがあります。コマンドを使用して(非常にゆっくりではありますが)正常に実行される統合テストもありますrake test:integration
。
ここで、ポート 8988 で実行されている spork を使用して、testdrb を介してテストを実行しようとします。
$ bundle exec testdrb -Itest test/integration/**/*_test.rb
No examples found.
Finished in 0.00141 seconds
0 examples, 0 failures
Randomized with seed 35511
Exception encountered: #<SystemExit: exit>
backtrace:
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:326:in `exit'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:326:in `block (2 levels) in autorun'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:27:in `run_once'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/test/unit.rb:325:in `block in autorun'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork.rb:77:in `call'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork.rb:77:in `exec_after_each_run'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/run_strategy/forking.rb:14:in `block in run'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/forker.rb:21:in `block in initialize'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/forker.rb:18:in `fork'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/forker.rb:18:in `initialize'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/run_strategy/forking.rb:9:in `new'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/run_strategy/forking.rb:9:in `run'
/home/mike/.rvm/gems/ruby-1.9.3-p286@myproject/gems/spork-1.0.0rc3/lib/spork/server.rb:48:in `run'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/drb/drb.rb:1548:in `perform_without_block'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/drb/drb.rb:1508:in `perform'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/drb/drb.rb:1586:in `block (2 levels) in main_loop'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/drb/drb.rb:1582:in `loop'
/home/mike/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/drb/drb.rb:1582:in `block in main_loop'
一方、Spork ターミナルは成功したテスト実行を出力します。
Running tests with args ["-Itest/", "test/integration/admin/user_test.rb"]...
Run options:
# Running tests:
Finished tests in 1.551147s, 0.6447 tests/s, 0.6447 assertions/s.
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
Done.
この SystemExit エラーを除いて、基本的にすべてが機能しています。これは、at_exit ハンドラーをインストールし、そのハンドラー内で exit() を呼び出す、最小限の自動実行コードから来ているようです。このエラーを取り除くためにできることはありますか?