16

我试过“nosetests p1.py > text.txt”但它不起作用。

管道此控制台输出的正确方法是什么?

4

3 回答 3

22

尝试:

nosetests -s p1.py > text.txt 2>&1

最后 --obvious--tip:如果不在测试文件目录下,请在.py文件前添加。

于 2012-03-01T16:19:34.567 回答
2

我想在这里添加更多细节。

在我的版本(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 流的答案。

于 2018-08-28T15:13:49.980 回答
1

参数-s- 不捕获标准输出

于 2012-03-01T16:20:13.583 回答