sonic-pi

https://github.com/sonic-pi-net/sonic-pi

C++

Code. Music. Live.

Minitest::Assertions#capture_subprocess_io

Captures $stdout and $stderr into strings, using Tempfile to
ensure that subprocess IO is captured as well.

  out, err = capture_subprocess_io do
    system "echo Some info"
    system "echo You did a bad thing 1>&2"
  end

  assert_match %r%info%, out
  assert_match %r%bad%, err

NOTE: This method is approximately 10x slower than #capture_io so
only use it when you need to test the output of a subprocess.

Source | Google | Stack overflow

Edit

git clone [email protected]:sonic-pi-net/sonic-pi.git

cd sonic-pi

open app/server/ruby/vendor/minitest-5.18.1/lib/minitest/assertions.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-Minitest--Assertions-capture_subprocess_io-for-pr


# Commit to git

git add app/server/ruby/vendor/minitest-5.18.1/lib/minitest/assertions.rbgit commit -m "better docs for Minitest::Assertions#capture_subprocess_io"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-Minitest--Assertions-capture_subprocess_io-for-pr

hub pull-request


# Celebrate!