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.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 branchgit checkout -b -your-name--update-docs-Minitest--Assertions-capture_subprocess_io-for-pr
# Commit to gitgit 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 requestgem 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!