Forum: RSpec [RSPEC] [CUCUMBER] have autotest running *only* the features

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Jean-Michel Garnier (Guest)
on 2009-04-29 18:53
(Received via mailing list)
Hi,

I am joining a project which is using Rails 2.0.2, Rspec as a plugin
1.1.4
The problem is specs take 10 minutes to run and I have no time to
optimize
them now.

I am adding cucumber features and would like to run them with autotest
(ZenTest 4.0.0).
Is there a way to  have autotest running *only* the features? It would
save
me a LOT of time ...

In the past, I think I managed to do it with a /script/autofeatures_only
looking like:
#!/usr/bin/env ruby

ENV['AUTOFEATURE'] = 'true' # run only cucumber features
ENV['RSPEC'] = 'false'     # ONLY the features, not the spec! NOT allows
autotest to discover rspec
system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'),
*ARGV) ||
  $stderr.puts("Unable to find autotest.  Please install ZenTest or fix
your
PATH")

My rspec/lib/autotest/discover.rb looks like:
Autotest.add_discovery do
  "rspec" if File.directory?('spec') && ENV['RSPEC'] == true
end

Does anyone have a similar set up with different versions of RSpec? I am
planning to upgrade Rails and RSpec in the coming months.

Thanks,

JM
Jean-Michel Garnier (Guest)
on 2009-04-30 14:10
(Received via mailing list)
I'll reply to my own question as I have found an "hacked" solution.

In Autotest::Rspec (rspec/lib/autotest/rspec-rb)
I redefined make_test_cmd like this:
def make_test_cmd(files_to_test)
    # FIXME JM HACK!
    if ENV['AUTOFEATURE'] =~ /true/i
      return "#{ruby} -S #{spec_command} #{add_options_if_present}
spec/truth_spec.rb"
    else
      return "#{ruby} -S #{spec_command} #{add_options_if_present}
#{files_to_test.keys.flatten.join(' ')}"
    end
  end

truth_spec is a dummy spec :
describe "Truth" do
  it "should be true" do
    true.should be_true
  end
end

Doing this, autotest with AUTOFEATURE= true first runs the "specs" but
only
finds truth_spec which takes about 1s to run and then run the features.


Jean-Michel Garnier wrote:
> save
> *ARGV) ||
> planning to upgrade Rails and RSpec in the coming months.
>
> Thanks,
>
> JM
>
> _______________________________________________
> rspec-users mailing list
> removed_email_address@domain.invalid
> http://rubyforge.org/mailman/listinfo/rspec-users
>

--
View this message in context:
http://www.nabble.com/-RSPEC---CUCUMBER--have-auto...
Sent from the rspec-users mailing list archive at Nabble.com.
This topic is locked and can not be replied to.