Cucumber and Spork and Teamcity Problem

Hi,

I'm using RubyMine 3.1.1 and just updated all of my gems yesterday, so all of these should be the latest and the greatest: RSpec 2.6.0, Cucumber 0.10.6, Spork 0.9.0.rc8.

Basically, Spork works with RSpec but not with Cucumber.

When I start the Spork DRb server for cucumber I get the following output in the Spork Console:

Using Cucumber
Preloading Rails environment
Loading Spork.prefork block...
Spork is ready and listening on 8990!
Running tests with args ["/home/larry/RubyMineProjects/StupidTuesday/features", "--expand", "--color", "-r", "--format", "Teamcity::Cucumber::Formatter", "--strict", "--tags", "~@wip", "--no-profile"]...
Done.


So far, so good. However, when I fire up my cucumber tests I get the following error message:

Using the default profile...
Disabling profiles...
Exception encountered: #<Errno::ENOENT: No such file or directory - Teamcity::Cucumber::Formatter>


This problem has been reported before, but I can't tell if it has been fixed or not.Here is a post from Roman on March 22, 2011:

Roman Chernyatchik

22 Mar 2011 18:17
(2 months ago)



Hi guys,
I have good news. Seems one of our request was fixed some time ago (https://rspec.lighthouseapp.com/projects/16211/tickets/596-default-profile-of-cucumberyml-doesnt-support-custom-formatter-if-reruntxt-isnt-given) so I've managed enable cucumber+spork support in rubymine. Fixed version will be in next rubymine 3.1.1 public build


The date on my 3.1.1 version is April 4, 2001, so it seems like the fix should be in. Is it? If not, any ideas when we will see it?

Thanks,
Larry

BTW, I installed the TeamCity Integration plugin and not only did it not help, but it produced the following error message when I re-started the IDE, so I removed it:

[rake --tasks] rake aborted!
uninitialized constant Rake::DSL

18 comments
Comment actions Permalink

Hi Larry,

I managed to run all this gems together. At least it works in my case with:

RubyMine: 3.1.1
Ruby: ruby 1.9.2-p180 (rvm)

Gems:
rails 3.0.5
cucumber-rails 0.4.0
cucumber 0.10.2
rspec 2.5.0
rspec-rails 2.5.0
rspec-core 2.5.1
spork 0.9.0.rc4
(etc.)

Also Spork server should be launched using RubyMine | Tools | Run Spork Drb Server... and "Use Drb server" option is needed to be checked in your cucumber feature run configuration settings.

Screen shot 2011-06-28 at 11.30.32 PM.png

Screen shot 2011-06-28 at 11.29.15 PM.png
Screen shot 2011-06-28 at 11.27.51 PM.png

My "./config/cucumber.yml":


<%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
%>
default: <%= std_opts %> features
wip: --tags @wip:3 --wip features
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip

0
Comment actions Permalink

Hi Roman,

I just sent Serge an email. I will copy and paste its contents below, assuming that that is easier for you and in case it helps others with this problem. I have upgraded to today's Rubymine build (Version 3.2, 107-315) and the problem still persists.

I notice that versions of some of my gems are newer than yours; I don't know if that's a problem or not.

Below is the output from the "gem list" and "gem environment"       commands, along with the error message I am getting.

Thanks,
Larry

P.S. The "Nokogiri was built against..." warning is something new       that appeared when I upgraded Ubuntu from 10.10 to 11.04       yesterday. (At least I think that's what did it). Regardless, my       problem existed before this Nokogiri warning, so I don't think       that is relevant. Besides, googling this warning indicates that it       is a known problem and not related to spork+cucumber.


=============== Spork DRb Server Window       ===================

/home/larry/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -e       $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)       /home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/bin/spork cucumber
Using Cucumber
Preloading Rails environment
WARNING: Nokogiri was built against LibXML version 2.7.7, but has       dynamically loaded 2.7.8
Loading Spork.prefork block...
Spork is ready and listening on 8990!

Running tests with args       ["/home/larry/RubyMineProjects/StupidTuesday/features/scenarios/guest/site",        "--expand", "--color", "-r", "--format",       "Teamcity::Cucumber::Formatter", "--strict", "--tags", "~@wip",       "--no-profile"]...
Done.Done.

================ Error Message in Cucumber       window ==============

/home/larry/.rvm/rubies/ruby-1.9.2-p136/bin/ruby -e       $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)       /home/larry/RubyMineProjects/StupidTuesday/script/cucumber       /home/larry/RubyMineProjects/StupidTuesday/features/scenarios/guest/site       --expand --drb --color -r features
Testing started at 3:33 PM ...
Using the default profile...
Disabling profiles...
Exception encountered: #<Errno::ENOENT: No such file or       directory - Teamcity::Cucumber::Formatter>
backtrace:
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/feature_file.rb:55:in       `initialize'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/feature_file.rb:55:in       `open'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/feature_file.rb:55:in       `source'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/feature_file.rb:37:in       `parse'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/runtime/features_loader.rb:28:in       `block in load'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/runtime/features_loader.rb:26:in       `each'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/runtime/features_loader.rb:26:in       `load'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/runtime/features_loader.rb:14:in       `features'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/runtime.rb:132:in       `features'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/runtime.rb:45:in       `run!'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/cli/main.rb:43:in       `execute!'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/test_framework/cucumber.rb:24:in       `run_tests'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/run_strategy/forking.rb:13:in       `block in run'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/forker.rb:21:in       `block in initialize'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/forker.rb:18:in       `fork'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/forker.rb:18:in       `initialize'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/run_strategy/forking.rb:9:in       `new'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/run_strategy/forking.rb:9:in       `run'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/server.rb:48:in       `run'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1558:in       `perform_without_block'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1518:in       `perform'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1592:in       `block (2 levels) in main_loop'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1588:in       `loop'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1588:in       `block in main_loop'

Process finished with exit code 0
================== cucumber.yml ========================


<%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
%>
default: --drb <%= std_opts %> features
wip: --drb --tags @wip:3 --wip features
rerun: --drb <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip

================== Gem List ============================

*** LOCAL GEMS ***

aaronh-chronic (0.3.9)
abstract (1.0.0)
actionmailer (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
actionpack (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
activemodel (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
activerecord (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
activeresource (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
activesupport (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
acts_as_archive (0.4.0)
also_migrate (0.3.5)
archive-tar-minitar (0.5.2)
arel (2.0.10, 2.0.9, 2.0.8, 2.0.7)
builder (3.0.0, 2.1.2)
bundler (1.0.10)
capybara (1.0.0, 0.4.1.2, 0.4.1.1)
carrierwave (0.5.4, 0.5.3)
celerity (0.8.9, 0.8.8, 0.8.7)
childprocess (0.1.9, 0.1.8, 0.1.7, 0.1.6)
columnize (0.3.2)
configuration (1.2.0)
cucumber (1.0.0, 0.10.6, 0.10.2, 0.10.0)
cucumber-rails (1.0.0, 0.5.2, 0.4.1, 0.4.0, 0.3.2)
culerity (0.2.15)
daemons (1.1.3, 1.1.2, 1.1.0)
database_cleaner (0.6.7, 0.6.6)
default_value_for (1.0.1)
diff-lcs (1.1.2)
erubis (2.6.6)
eventmachine (0.12.10)
exception_notification (2.4.1, 2.4.0)
factory_girl (1.3.3)
factory_girl_rails (1.0.1)
ffi (1.0.9, 1.0.7, 1.0.6, 1.0.5, 0.6.3)
forgery (0.3.8, 0.3.7)
formtastic (1.2.3)
gherkin (2.4.1, 2.4.0, 2.3.5, 2.3.4, 2.3.3)
haml (3.1.2, 3.0.25)
haml-rails (0.3.4)
i18n (0.5.0)
image_science (1.2.1)
jquery-rails (1.0.10, 0.2.7, 0.2.6)
json (1.5.3, 1.5.2, 1.5.1, 1.4.6)
json_pure (1.5.3, 1.5.2, 1.5.1)
launchy (0.4.0, 0.3.7)
linecache19 (0.5.11)
mail (2.2.19, 2.2.15)
mime-types (1.16)
mover (0.3.6)
mysql2 (0.3.3, 0.2.7, 0.2.6)
nokogiri (1.4.6, 1.4.4)
polyglot (0.3.1)
rack (1.2.3, 1.2.2, 1.2.1)
rack-mount (0.6.14, 0.6.13)
rack-test (0.5.7)
rails (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
rails3-generators (0.17.4, 0.17.2)
railties (3.0.8, 3.0.6, 3.0.5, 3.0.4, 3.0.3)
rake (0.9.2, 0.8.7)
rcov (0.9.9)
rspec (2.6.0, 2.5.0, 2.4.0)
rspec-core (2.6.4, 2.5.1, 2.4.0)
rspec-expectations (2.6.0, 2.5.0, 2.4.0)
rspec-mocks (2.6.0, 2.5.0, 2.4.0)
rspec-rails (2.6.1, 2.5.0, 2.4.1)
ruby-debug-base19 (0.11.25.jb3, 0.11.24)
ruby-debug-base19x (0.11.28, 0.11.26, 0.11.25)
ruby-debug-ide (0.4.17.beta3, 0.4.15)
ruby_core_source (0.1.4)
RubyInline (3.9.0)
rubyzip (0.9.4)
sass (3.1.2)
selenium-webdriver (0.2.2, 0.2.1, 0.1.4, 0.1.3, 0.1.3.dev, 0.1.2)
simple_form (1.4.1, 1.3.1)
spork (0.9.0.rc8, 0.9.0.rc4, 0.8.4)
term-ansicolor (1.0.5)
thin (1.2.11, 1.2.8, 1.2.7)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.28, 0.3.26, 0.3.25, 0.3.24)
whenever (0.6.8)
xpath (0.1.4, 0.1.3)
ZenTest (4.5.0)

============== Gem environment ==============

RubyGems Environment:
   - RUBYGEMS VERSION: 1.5.0
   - RUBY VERSION: 1.9.2 (2010-12-25 patchlevel 136) [x86_64-linux]
   - INSTALLATION DIRECTORY:       /home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues
   - RUBY EXECUTABLE:       /home/larry/.rvm/rubies/ruby-1.9.2-p136/bin/ruby
   - EXECUTABLE DIRECTORY:       /home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/bin
   - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-linux
   - GEM PATHS:
      - /home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues
      - /home/larry/.rvm/gems/ruby-1.9.2-p136@global
   - GEM CONFIGURATION:
      - :update_sources => true
      - :verbose => true
      - :benchmark => false
      - :backtrace => false
      - :bulk_threshold => 1000
   - REMOTE SOURCES:
      - http://rubygems.org/

0
Comment actions Permalink

Hello again,

Just wanted to add that I did fire up the Spork server as you described, and that I have also checked "Use DRb server" in my run configuration.

The problem seems to be with your TeamCity product or plugin or whatever it is. Regardless of what it is, I am not using it (at least to my knowledge), so I don't understand why it should stand in the way of running Spork + Cucumber.

To cut through all of the clutter from my previous post, here is the output from how my tests are being run and the resulting error:

Spork is ready and listening on 8990!
Running tests with args ["/home/larry/RubyMineProjects/StupidTuesday/features/scenarios/user/pol/new.feature", "--expand", "--color", "-r", "--format", "Teamcity::Cucumber::Formatter", "--strict", "--tags", "~@wip", "--no-profile"]...
Done.

Using the default profile...
Disabling profiles...
Exception encountered: #<Errno::ENOENT: No such file or directory - Teamcity::Cucumber::Formatter>

Thanks,
Larry

0
Comment actions Permalink

Hi Larry,

I've just created new Rails 3.1.0.rc4 project. My Gemfile:


source 'http://rubygems.org'

gem 'rails', '3.1.0.rc4'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

# Asset template engines
gem 'sass-rails', "~> 3.1.0.rc"
gem 'coffee-script'
gem 'uglifier'
gem 'spork'
gem 'cucumber-rails'
gem 'capybara'
gem 'rspec-rails'

gem 'jquery-rails'


# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
  gem 'database_cleaner'
end


bundler installed following gems:


/Users/romeo/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/romeo/.rvm/gems/ruby-1.9.2-p180@rails31/bin/bundle install
Using rake (0.9.2)
Using multi_json (1.0.3)
Using activesupport (3.1.0.rc4)
Using bcrypt-ruby (2.1.4)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.0.rc4)
Using erubis (2.7.0)
Using rack (1.3.0)
Using rack-cache (1.0.2)
Using rack-mount (0.8.1)
Using rack-test (0.6.0)
Using hike (1.1.0)
Using tilt (1.3.2)
Using sprockets (2.0.0.beta.10)
Using tzinfo (0.3.29)
Using actionpack (3.1.0.rc4)
Using mime-types (1.16)
Using polyglot (0.3.1)
Using treetop (1.4.9)
Using mail (2.3.0)
Using actionmailer (3.1.0.rc4)
Using arel (2.1.3)
Using activerecord (3.1.0.rc4)
Using activeresource (3.1.0.rc4)
Using ansi (1.2.5)
Using bundler (1.0.13)
Using nokogiri (1.4.6)
Using ffi (1.0.9)
Using childprocess (0.1.9)
Using json_pure (1.5.3)
Using rubyzip (0.9.4)
Using selenium-webdriver (0.2.2)
Using xpath (0.1.4)
Using capybara (1.0.0)
Using coffee-script-source (1.1.1)
Using execjs (1.2.0)
Using coffee-script (2.2.0)
Using diff-lcs (1.1.2)
Using json (1.5.3)
Using gherkin (2.4.1)
Using term-ansicolor (1.0.5)
Using cucumber (1.0.0)
Using cucumber-rails (1.0.2)
Using database_cleaner (0.6.7)
Using rack-ssl (1.3.2)
Using rdoc (3.7)
Using thor (0.14.6)
Using railties (3.1.0.rc4)
Using jquery-rails (1.0.12)
Using rails (3.1.0.rc4)
Using rspec-core (2.5.2)
Using rspec-expectations (2.5.0)
Using rspec-mocks (2.5.0)
Using rspec (2.5.0)
Using rspec-rails (2.5.0)
Using sass (3.1.3)
Using sass-rails (3.1.0.rc.3)
Using spork (0.8.5)
Using sqlite3 (1.3.3)
Using turn (0.8.2)
Using uglifier (1.0.0)
Your bundle is complete! It was installed into /Users/romeo/.rvm/gems/ruby-1.9.2-p180@rails31

Process finished with exit code 0


I've launched cucumber:install with bootstrap option for spork. And looks all works ok. Try to open my attached sample project and run cucumber tests (manage_people run configuration)  in RubyMine 3.2 Beta.


Attachment(s):
cucumber10-spork.zip
0
Comment actions Permalink

The problem seems to be with your TeamCity product or plugin or whatever it is. Regardless of what it is, I am not using it (at least to my knowledge), so I don't understand why it should stand in the way of running Spork + Cucumber.

Here TeamCity relates to name of our custom cucumber tests formatter. It listens test started/finished/failed events from cucumber framework and outputs special marker messages in process std out. RubyMine parses std out, understand these TeamCite messages and build UI. It is name contains TeamCity because originally it was implemented as part of our CI server TeamCity (http://www.jetbrains.com/teamcity/) and then RubyMine reused our test runner events protocol for its GUI test runner.

TeamCity plugin for RubyMine doesn't related to this tests reporters/formatters. The plugin is required for integration with our TeamCity CI and if you don't use our CI you don't need TeamCity plugin.

0
Comment actions Permalink

I unzipped your files and when I try to open it as a Rails project in the IDE I get nowhere because it says:

Could not find multi_json-1.0.3 in any of the sources
Process finished with exit code 7

What should I do now?

-- Larry

0
Comment actions Permalink

Please check that Ruby sdk settings are correct in my project on your machine (i.e. it is ruby 1.9.2) then run bundle install.

0
Comment actions Permalink

I appreciate your help on this, especially since I've been trying to resolve this for about 10 days. When I look at the error message ( <Errno::ENOENT: No such file or directory - Teamcity::Cucumber::Formatter ) it seems like I am just missing a file or directory.

Do I really need to create a whole new project and compare (and perhaps change) my SDK settings to be the same as yours and then download a ton of gems and then have to back off of the changes and/or gems and maybe miss something and be left with an unstable environment just to fix a missing file/directory problem?

-- Larry

P.S. The Console window contains this sole message: "Unable to attach test reporter to test framework." Given what you said in one of your previous posts, it seems that you guys provide your own custom test formatter for cucumber (Teamcity::Cucumber::Formatter) and I obviously don't have it. Can't you just tell me how to get this custom formatter without me having to create a whole new project and change my IDE settings? Also, shouldn't this just be included as part of the IDE itself?

0
Comment actions Permalink

Hello again,

I'm still wondering about this. Like I said before, it seems that I am simply missing this TeamCity::Cucumber::Formatter. Can someone please tell me how I go about getting this? BTW, i have a separate setup on another computer and am experiencing the same problem on that platform as well.

Can someone please tell me how I can get your Formatter withouth having to re-create a whole new project with all that that entails? It seems to me that if I don't have the TeamCity::Cucumber::Formatter for my project (on 2 different machines) then I won't have it for other projects either, as it seems to be an IDE component, not a project-specfic one.

-- Larry

0
Comment actions Permalink

I read a bunch of posts about this problem and I tried what was suggested in the one at this link:
http://devnet.jetbrains.net/message/5261019#5261019

Specifically, in cucumber.yml I removed "features" from the following line (as per one of the suggestions in that thread):

default: --drb <%= std_opts %> features

That got me further. Now I get the following error message (and stack trace):

Using the default profile...
Disabling profiles...
Exception encountered: #<RuntimeError: All but one formatter must use --out, only one can print to each stream (or STDOUT)>
backtrace:
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/cli/configuration.rb:194:in `arrange_formats'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/cli/configuration.rb:26:in `parse!'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/cli/main.rb:54:in `configuration'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/cli/main.rb:62:in `run_drb_client'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/cucumber-1.0.0/lib/cucumber/cli/main.rb:34:in `execute!'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/test_framework/cucumber.rb:24:in `run_tests'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/run_strategy/forking.rb:13:in `block in run'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/forker.rb:21:in `block in initialize'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/forker.rb:18:in `fork'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/forker.rb:18:in `initialize'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/run_strategy/forking.rb:9:in `new'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/run_strategy/forking.rb:9:in `run'
/home/larry/.rvm/gems/ruby-1.9.2-p136@stuptues/gems/spork-0.9.0.rc8/lib/spork/server.rb:48:in `run'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1558:in `perform_without_block'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1518:in `perform'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1592:in `block (2 levels) in main_loop'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1588:in `loop'
/home/larry/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/drb/drb.rb:1588:in `block in main_loop'

This seems to be a recurring problem, and a thorny one at that, given the number of posts that state they can't get this to work.

I was unable to find a fix for the new problem, but I did discover the following, which may or may not help...

Like I said, first I was getting the Teamcity::Cucumber::Formatter problem, but that went away when I removed the "featues" argument in the "default" line in my cucumber.yml file (described in this post). But Roman said his tests ran with the "features" argument left in - which confused me.

So I searched some more, and in one of the other posts it said that in Run > Edit Config > Runner Options you should not have "-r features" or else you would get the Teamcity::Cucumber::Formatter problem. When I removed this argument the "Formatter" problem did indeed go away - only to be replaced with the new "All but one formatter must use --out..." error.

So, it looks like you can keep the "features" argument in the "default" line in "cucumber.yml", *if* you don't have the "-r features" option in the Runner Options.

Now... can someone tell me how to get rid of this new error?

Thanks,
Larry

0
Comment actions Permalink

Another update (in case anyone is following this and can help out)...

My previous post said that removing the "-r features" option in the Runner options helped fix the first problem. It does, but the group of tests that that applied to now no longer run because they can't find *any* of the step definitions that they need in order to run. As soon as I put that option back in the same tests find the step definitions and pass.

-- Larry

0
Comment actions Permalink

To clarify my last post: When I had the Spork server for Cucumber running and I removed the "-r features" option from the Runner options it seemed to help in that it got me past the no Teamcity::Formatter error but I still ended up with an "All but one formatter must use --out..." error message.

Today I wasn't running Spork because - well, just read these string of posts over the last few weeks - and when I went to run the group of tests that did not have the "-r features" option they couldn't find any step defintions.

I believe I saw the "don't use the -r features option" in a post from Roman. Obviously (at least in my case) this is not a valid "fix" because even if it did work for Spork, it breaks the tests when you run them without Spork.

Sigh...

0
Comment actions Permalink

this doesn't work.

downloaded your example, get the same errors as with my large app

0
Comment actions Permalink

Larry,

1. > When I removed this argument the "Formatter" problem did indeed go away - only to be replaced with the new "All but one formatter must use --out..." error.
Latest spork versions (at least spork 0.9.0.rc4) generates correct cucumber.yml which is compatible with custom cucumber results formatters (i.e. our TeamCity formatter). I've posted a correct cucumber.yml in the beginning of this topic. So be ready that you probably have to update cucumber.yml in your old projects. Unfortunately it is a spork gem bug and I don't know any workaround for RubyMine in such situations. I hope people will start using latest spork gem versions and problem will gone.

2. >  I went to run the group of tests that did not have the "-r features" option they couldn't find any step defintions.
Could you attach a screenshot with you run configuration settings? If you choose "features" folder and launch "Run all features in 'features'" folder from context menu than usually "-r features" not needed. This option may be required if you have unusual step definitions layout and you get errors due to step definitions weren't loaded.

In any case you always may save any temporary run configuration generated by RubyMine so you can have to run configurations for all tests, one of the for spork and without "-r features" and the other is for using without spork (see "Run | Edit Configurations" dialog)

P.S: In the beginning of this topic I attached a sample project for cucumber+spork demo. You can open it in RubyMine, fix Ruby SDK settings because project is configured to my sdk) and try to play with it.

0
Comment actions Permalink

Hi Roman,

I am using spork 0.9.0.rc8, along with cucumber 1.0.0 and cucumber-rails 1.0.0, so my spork version is greater than the one you mentioned.

I am trying to run this with a simple group of tests, so my Runner  setting is "Feature file", not "All features in folder". Still, I have  to remove the "-r features" flag from the configuration in order to get  anywhere.

I did take a look at your cucumber.yml from one of your first posts and it was identical to mine. I have updated Cucumber and Spork since then, so when I looked at cucumber.yml again today I noticed that mine differs slightly from yours in that my "default:", "wip:", and "rerun:" lines all start with a "--drb"  argument. I took out the "-- drb" flags and got a slightly different error message, but it appears to mean the same thing...

When I run it with the "--drb" arg I get the following error I used to see:
Exception encountered: #<Errno::ENOENT: No such file or directory - Teamcity::Cucumber::Formatter>
backtrace:

When I remove the "--drb" arg I get this error:
Exception encountered: #<LoadError: no such file to load -- teamcity/cucumber/formatter
Error creating formatter: Teamcity::Cucumber::Formatter>

I really appreciate your help with this because I know you guys have been busy with the new 3.2 (and follow-up) 3.2.1 release, but, to be honest, I've about had it with this. Spork ran with RSpec right off the bat, but for 3 weeks now I have been trying to get it running with Cucumber - to no avail. I have tried all sorts of combinations of settings and nothing has worked. I have also seen similar problems (and frustrations) with this issue in other posts.

I don't know if I will get a chance to play around with your code because (a) I am behind on things that have to get done, and (b) after spending 3 weeks on something that seems should just work, the last thing I feel like doing is "playing around" with it some more. Besides, it's a fair amount of work and I'm not even sure what it will tell us, i.e. if your project works, what do we do then? Same goes for if it doesn't work... what do we do?

-- Larry

0
Comment actions Permalink

I totally agree on this point.
Cucumber is for me important too. One of the most important things in my workflow is testing.
I am soon forced to switch to textmate again, unfortunately I don't have time to "play around" either.
Nonetheless I helped myself out with Rspec Tests first, but... I am so not productive compared to Textmate, a simple Texteditor.
I hope, that this is a major issue for you too.

I'd really appreciate!

Thanks a lot for taking our concerns and difficulties serious, that's why I am still hoping for a reliable solution.

greez

0
Comment actions Permalink

Hi Rafael,

Thanks for the feedback. It helped to know that you, too, were having problems. And this thread has had a lot of views, so I suspect that others are interested as well.

I hope they can fix this. I imagine it is a pretty complicated problem, and, like Roman said, it looks like it's a problem with the Spork gem.

I was pretty frustrated when I wrote my previous post (it was a lousy way to start my day ;-), but in Rubymine's and Roman's defense:

I have tried other IDEs (RadRails/Aptana and NetBeans) and prefer Rubymine hands down. I develop on Linux so I have never tried TextMate.

Rubymine has always impressed me as an amazing piece of software. If you think about all of the different things they have to deal with (including spork/rspec/cucumber environments :-)... well, I think they do an incredible job. Plus they stay on top of things - they've had HAML and SASS support for quite some time, now they can handle Rails 3.1 and Coffeescript (among other things)... Impressive. Impressive. Impressive.

Also, Roman (and others) are usually really good about helping you solve problems and hanging in there until a solution has been reached. I know these last few weeks must have been hard on them because they came out with not one, but two releases - something I'm sure we can all relate to ;-)

Sure, I'm still frustrated about this, but I think it helps to keep in mind the bigger picture (which I didn't do so well at in my last post :-( , so thanks Rubymine and Roman!

And thanks for your posts on this matter, Rafael. The Rubymine folks need to know if the problem is pervasive or just due to one developer's screwed up environment.

-- Larry

0
Comment actions Permalink

I can only agree on that! Roman and commonly the Jetbrains RM Team do an amazing job.
I am really surprised about the fast releases and I even find, that's fairly non buggy already, when they ship EAP.
I am looking forward to the next EAP already.

For me... there are really only two hassles, which are following ever since:
- Testing Issues
- Code Completion Issues

These are two really annoying things, which breaks my productivity again and again, that's really sad, because,
it is a really good piece of software, I think too.

OT:
If you had the possibility to check out textmate, do it :)
For me, it is the best editor out there (ok... I know, all the vimists and emacists will flame now ;) )

So I am looking forward, that the Jet-BRAINS find a reliable solution for this cucumber problem.

Thanks to all you guys, for taking us serious and helping us so fast!

0

Please sign in to leave a comment.