我试过“nosetests p1.py > text.txt”但它不起作用。
管道此控制台输出的正确方法是什么?
尝试:
nosetests -s p1.py > text.txt 2>&1
最后 --obvious--tip:如果不在测试文件目录下,请在.py文件前添加。
我想在这里添加更多细节。
在我的版本(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 流的答案。
参数-s
- 不捕获标准输出