Problem ze Spork - testy się wykrzaczają

Miałem zamiar popisać trochę testów dla skilla oraz jakoś przy-kontrybuować do open source.

Jednakże po strzeleniu git clone z repo
https://github.com/there-is-no-spoon/spork
i standardowych czynnościach(bundle itd)…

Zauważyłem że podczas wywoływania testów w folderze, coś się wykrzacza

[code=ruby]bundle exec rake
(in /home/maciejk/spork/spork)
/usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby -S bundle exec rspec ./spec/spork_spec.rb ./spec/spork/test_framework_spec.rb ./spec/spork/app_framework/rails_spec.rb ./spec/spork/app_framework/unknown_spec.rb ./spec/spork/forker_spec.rb ./spec/spork/app_framework_spec.rb ./spec/spork/server_spec.rb ./spec/spork/run_strategy/forking_spec.rb ./spec/spork/runner_spec.rb ./spec/spork/test_framework/cucumber_spec.rb ./spec/spork/test_framework/rspec_spec.rb ./spec/spork/diagnoser_spec.rb
…Exception encountered: #<SignalException: SIGTERM>
backtrace:
/home/maciejk/spork/spork/spec/spork/forker_spec.rb:32:in sleep' /home/maciejk/spork/spork/spec/spork/forker_spec.rb:32:inblock (4 levels) in <top (required)>’
/home/maciejk/spork/spork/lib/spork/forker.rb:21:in block in initialize' /home/maciejk/spork/spork/lib/spork/forker.rb:18:infork’
/home/maciejk/spork/spork/lib/spork/forker.rb:18:in initialize' /home/maciejk/spork/spork/spec/spork/forker_spec.rb:32:innew’
/home/maciejk/spork/spork/spec/spork/forker_spec.rb:32:in block (3 levels) in <top (required)>' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example.rb:48:ininstance_eval’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example.rb:48:in block in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example.rb:107:inwith_around_hooks’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example.rb:45:in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:294:inblock in run_examples’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:290:in map' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:290:inrun_examples’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:262:in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:263:inblock in run’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:263:in map' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/example_group.rb:263:inrun’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/command_line.rb:24:in block (2 levels) in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/command_line.rb:24:inmap’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/command_line.rb:24:in block in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/reporter.rb:12:inreport’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/command_line.rb:21:in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/runner.rb:80:inrun_in_process’
/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/runner.rb:69:in run' /usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.6.3/lib/rspec/core/runner.rb:11:inblock in autorun’
…/home/maciejk/spork/spork/lib/spork/forker.rb:27:in write': not opened for writing (IOError) from /home/maciejk/spork/spork/lib/spork/forker.rb:27:inputs’
from /home/maciejk/spork/spork/lib/spork/forker.rb:27:in puts' from /home/maciejk/spork/spork/lib/spork/forker.rb:27:inrescue in block in initialize’
from /home/maciejk/spork/spork/lib/spork/forker.rb:19:in block in initialize' from /home/maciejk/spork/spork/lib/spork/forker.rb:18:infork’
from /home/maciejk/spork/spork/lib/spork/forker.rb:18:in initialize' from /home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:innew’
from /home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:in run' from /home/maciejk/spork/spork/spec/spork/run_strategy/forking_spec.rb:19:inblock (3 levels) in <top (required)>’
./home/maciejk/spork/spork/lib/spork/forker.rb:27:in write': not opened for writing (IOError) from /home/maciejk/spork/spork/lib/spork/forker.rb:27:inputs’
from /home/maciejk/spork/spork/lib/spork/forker.rb:27:in puts' from /home/maciejk/spork/spork/lib/spork/forker.rb:27:inrescue in block in initialize’
from /home/maciejk/spork/spork/lib/spork/forker.rb:19:in block in initialize' from /home/maciejk/spork/spork/lib/spork/forker.rb:18:infork’
from /home/maciejk/spork/spork/lib/spork/forker.rb:18:in initialize' from /home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:innew’
from /home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:in run' from /home/maciejk/spork/spork/spec/spork/run_strategy/forking_spec.rb:31:inblock (3 levels) in <top (required)>’

Finished in 1.98 seconds
62 examples, 0 failures[/code]
Co śmieszne ogórkowa moda po wywołaniu

bundle exec cucumber features

też wali errorami w niektórych miejscach:

[code][…]
And the output should contain “lib/awesome.rb” # features/steps/sandbox_steps.rb:93
expected “” to include “lib/awesome.rb” (RSpec::Expectations::ExpectationNotMetError)
./features/steps/sandbox_steps.rb:94:in /^the (error output|output) should contain "(.+)"$/' features/diagnostic_mode.feature:37:inAnd the output should contain “lib/awesome.rb”’
[…]
And I run rspec --drb spec/models/non_standard/boogie_spec.rb # features/steps/sandbox_steps.rb:34
Then the output should contain “BOOGIE!!!” # features/steps/sandbox_steps.rb:93
expected "Exception encountered: #<LoadError: no such file to load – app/models/non_standard/boogie>\nbacktrace:\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in require'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:inblock in require’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227:in load_dependency'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:inrequire’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:346:in require_or_load'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:491:inload_missing_constant’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:183:in block in const_missing'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:181:ineach’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:181:in const_missing'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/backward_compatibility.rb:20:inconst_missing’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-expectations-2.5.0/lib/rspec/expectations/backward_compatibility.rb:6:in const_missing'\n/home/maciejk/spork/spork/tmp/sandbox/test_rails_project/spec/models/non_standard/boogie_spec.rb:1:in<top (required)>’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:in load'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:inblock in load’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227:in load_dependency'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:inload’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in block in load_spec_files'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:inmap’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in load_spec_files'\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:18:inrun’\n/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/monkey/spork/test_framework/rspec.rb:4:in run_tests'\n/home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:13:inblock in run’\n/home/maciejk/spork/spork/lib/spork/forker.rb:21:in block in initialize'\n/home/maciejk/spork/spork/lib/spork/forker.rb:18:infork’\n/home/maciejk/spork/spork/lib/spork/forker.rb:18:in initialize'\n/home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:innew’\n/home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:in run'\n/home/maciejk/spork/spork/lib/spork/server.rb:48:inrun’\n/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1558:in perform_without_block'\n/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1518:inperform’\n/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1592:in block (2 levels) in main_loop'\n/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:inloop’\n/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in block in main_loop'\n" to include "BOOGIE!!!" Diff: @@ -1,2 +1,36 @@ -BOOGIE!!! +Exception encountered: #<LoadError: no such file to load -- app/models/non_standard/boogie> +backtrace: +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:inrequire’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in block in require' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227:inload_dependency’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:239:in require' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:346:inrequire_or_load’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:491:in load_missing_constant' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:183:inblock in const_missing’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:181:in each' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:181:inconst_missing’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/backward_compatibility.rb:20:in const_missing' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-expectations-2.5.0/lib/rspec/expectations/backward_compatibility.rb:6:inconst_missing’
+/home/maciejk/spork/spork/tmp/sandbox/test_rails_project/spec/models/non_standard/boogie_spec.rb:1:in <top (required)>' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:inload’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:in block in load' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:227:inload_dependency’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/activesupport-3.0.7/lib/active_support/dependencies.rb:235:in load' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:inblock in load_spec_files’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:in map' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/configuration.rb:386:inload_spec_files’
+/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/core/command_line.rb:18:in run' +/usr/local/rvm/gems/ruby-1.9.2-p290@spork/gems/rspec-core-2.5.2/lib/rspec/monkey/spork/test_framework/rspec.rb:4:inrun_tests’
+/home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:13:in block in run' +/home/maciejk/spork/spork/lib/spork/forker.rb:21:inblock in initialize’
+/home/maciejk/spork/spork/lib/spork/forker.rb:18:in fork' +/home/maciejk/spork/spork/lib/spork/forker.rb:18:ininitialize’
+/home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:in new' +/home/maciejk/spork/spork/lib/spork/run_strategy/forking.rb:9:inrun’
+/home/maciejk/spork/spork/lib/spork/server.rb:48:in run' +/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1558:inperform_without_block’
+/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1518:in perform' +/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1592:inblock (2 levels) in main_loop’
+/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:in loop' +/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/drb/drb.rb:1588:inblock in main_loop’
(RSpec::Expectations::ExpectationNotMetError)
./features/steps/sandbox_steps.rb:94:in /^the (error output|output) should contain "(.+)"$/' features/rails_delayed_loading_workarounds.feature:95:inThen the output should contain “BOOGIE!!!”’
[…]

OSTATECZNIE

Failing Scenarios:
cucumber features/diagnostic_mode.feature:6 # Scenario: Running spork --diagnose
cucumber features/rails_delayed_loading_workarounds.feature:70 # Scenario: respecting custom autoload paths

16 scenarios (2 failed, 1 undefined, 13 passed)
172 steps (2 failed, 4 skipped, 1 undefined, 165 passed)
2m48.260s[/code]
Jednakże nie zauważyłem żadnego ticketa na githubie odnośnie tego buga
https://github.com/timcharper/spork/issues?sort=created&direction=desc&state=open&page=1
Więc pomyślałem że po prostu znoobiłem i czegoś nie doinstalowałem.

  1. Co mam nie tak?
  2. Jak się testuje gem to też się stosuje podobną taktykę(git clone, bundle i bundle exec rake)?
  3. Trochę offtop: Czy cucumber zawszę tak zamula?

Mile widziane odpowiedzi na pytania 2 i 3. :slight_smile:

  1. Mam dokładnie to samo na 1.9.2-p290 i p180, a taktyka jest dobra - patrz README

Ok dzięki za odpowiedź.
Myślałem że tylko u mnie coś takiego występuje.