[rspec-users] [Rspec] How do you nest before(:all) or after(:all) blocks?

John Kolokotronis
Wed, 04 Feb 2009 09:07:29 -0000

Hi all,

I''m new to Rspec but loving it so far and looking to use it as a
replacement for a Test::Unit framework I have which drives a web app
via Watir. So far, things have worked very well with Rspec but I can''t
get my head around how before/after(:all) blocks would work in nested
groups, or even if what I am doing is possible.

What I want to do is something like this:

describe "This is a set of tests: " do
	before(:all) do
		puts "this should only appear once"
	end

	describe "Test 1" do
		puts "test 1"
	end

	describe "Test 2" do
		puts "test 2"
	end
end

Expecting the before(:all) block to run only once and see something
like:

- this should only appear once
- test 1
- test 2

but what I am getting is:

- this should only appear once
- test 1
- this should only appear once
- test 2

So my question is, how can you add before/after(:all) blocks that run
once and only once for for all examples, if all the examples are
nested in one main describe block? Is that something that''s even
possible? I''d appreciate any pointers anyone may have. Thanks!

Regards,

John