Я хочу добавить больше деталей здесь.
В моей версии (v1.3.7) Нос входит в систему stderr
вместо ожидаемого stdout
. Почему нос входит в систему stderr
вместо stdout
, мне не понятно. Поэтому решение состоит в том, чтобы перенаправить поток stderr
в ваш файл. Символ перенаправления отправляет stdout
по умолчанию. Флаг --nocapture, -s
используется, чтобы не дать носу захватить ваши собственные операторы print
.
$ nosetests -s -v test/ > stdout.log 2> stderr.log
Стоит отметить, что хотя stderr
кажется сброшенным на каждом выходе, stdout
не сбрасывается, поэтому, если вы tail
используете файл stdout.log
, вы не увидите вывод до тех пор, пока или ОС решает сбросить. Поэтому, если вы считаете, что это не работает, попробуйте выйти из тестового режима, что приведет к сбросу stdout
.
См. Этот ответ о перенаправлении потоков Linux .