How to get the minitest capture_io method found in my specs?

This is my spec/helper.rb file:

require 'minitest/autorun'
require 'minitest/spec'
require_relative '../lib/launcher'

class MiniTest::Spec
  include MiniTest::Assertions
end

And this is the spec file:

require 'helper'

describe Launcher do
  it "should get the stdout" do
    out, err = capture_io do
      warn "You did a bad thing"
    end
    err.should =~ /bad/
  end
end

But when I run the spec:

± rake spec
/Users/millisami/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec

./spec/launcher_spec.rb -Ispec:lib
F

Failures:

  1) Launcher should be a launcher for cloud
     Failure/Error: out, err = capture_io do
     NoMethodError:
       undefined method `capture_io' for

#RSpec::Core::ExampleGroup::Nested_1:0x000001012a4840
# ./spec/launcher_spec.rb:5:in `block (2 levels) in <top
(required)>’

Finished in 0.00044 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/launcher_spec.rb:4 # launcher should be a launcher for

cloud
rake aborted!
/Users/millisami/.rvm/rubies/ruby-1.9.3-p194/bin/ruby -S rspec
./spec/launcher_spec.rb -Ispec:lib failed

Tasks: TOP => spec

But when I do this with the default MiniTest::Unit way, it works?
And why not the spec way?

On Aug 20, 2012, at 00:10 , Milli S. [email protected] wrote:

This is my spec/helper.rb file:

require ‘minitest/autorun’
require ‘minitest/spec’
require_relative ‘…/lib/launcher’

class MiniTest::Spec
include MiniTest::Assertions
end

This isn’t necessary. In fact, you only need the autorun and launcher
lines.

 end

end

I’d start by cleaning up the above. it works for me:

10011 % ruby -Ilib -rminitest/autorun -e ‘describe true do it “works” do
x = capture_io do puts “hi” end; p x end end’
Run options: --seed 27063

Running tests:

[“hi\n”, “”]
.

Finished tests in 0.000760s, 1315.7895 tests/s, 0.0000 assertions/s.

1 tests, 0 assertions, 0 failures, 0 errors, 0 skips

If you still can’t get it to work, please file a bug. This is no the
right forum for minitest support.

Ryan D. wrote in post #1072862:

On Aug 20, 2012, at 00:10 , Milli S. [email protected] wrote:

This is my spec/helper.rb file:

require ‘minitest/autorun’
require ‘minitest/spec’
require_relative ‘…/lib/launcher’

class MiniTest::Spec
include MiniTest::Assertions
end

This isn’t necessary. In fact, you only need the autorun and launcher
lines.

 end

end

I’d start by cleaning up the above. it works for me:

10011 % ruby -Ilib -rminitest/autorun -e ‘describe true do it “works” do
x = capture_io do puts “hi” end; p x end end’
Run options: --seed 27063

Running tests:

[“hi\n”, “”]
.

Finished tests in 0.000760s, 1315.7895 tests/s, 0.0000 assertions/s.

1 tests, 0 assertions, 0 failures, 0 errors, 0 skips

If you still can’t get it to work, please file a bug. This is no the
right forum for minitest support.

Well, it works when I run the spec via ruby spec/....
But fails with
rake.

Actually I’m running into this with the project I’m trying with
Hoe.
Since you said this is not the place for such issue, I’ve posted
this issue at capture_io of minitest not working with minitest/spec · Issue #30 · seattlerb/hoe · GitHub

Can you take a look into that?

On Aug 20, 2012, at 03:32 , Milli S. [email protected] wrote:

Actually I’m running into this with the project I’m trying with
Hoe.
Since you said this is not the place for such issue, I’ve posted
this issue at capture_io of minitest not working with minitest/spec · Issue #30 · seattlerb/hoe · GitHub

Can you take a look into that?

Fixed and released! Thanks!