I am running unit tests in a bash shell, which can take some time to finish, and those tests print output as they run. I want this output to be printed, and I also want the output to be stored in a variable. However, I want these things to be done concurrently if possible, like the tee command does when writing to a file. Perhaps tee works in this case too…
So I am currently doing this:
output=$(ginkgo -r -cover)
echo "$output"
However, this obviously won't print the unit test output until all the tests have run. So how can I get the output to print as the tests run while also storing that output in a variable?
output=$(ginkgo -r -cover | tee /dev/fd/2)
You can use tee to send stdout to both stdout and stderr. stdout is captured into your variable, stderr is printed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With