This link gives a description how to use pytest for capturing console outputs. I tried on this following simple code, but I get error
import sys
import pytest
The problem is with your explicit call of your test function at the very end of your first code snippet block:
test_add(sys.stdout)
You should not do this; it is pytest's job to call your test functions.
When it does, it will recognize the name capsys
(or capfd
, for that matter)
and automatically provide a suitable pytest-internal object for you as a call argument.
(The example given in the pytest documentation is quite complete as it is.)
That object will provide the required readouterr()
function.
sys.stdout
does not have that function, which is why your program fails.