当我使用 ./manage.py test
运行测试时,我通过 print
发送到标准输出的任何内容都不会显示。当测试失败时,我会在每个失败的测试中看到一个“stdout” block ,所以我猜 Django 会捕获它(但在测试通过时不会显示它)。
最佳答案
在 settings.py
中检查了 TEST_RUNNER
,它使用的是调用 Nose 的项目特定运行器。 Nose 有 -s
选项来阻止它捕获 stdout
,但如果我运行:
./manage.py test -s
manage.py
首先捕获它并抛出“没有这样的选项”错误。 manage.py
的帮助没有提到这一点,但我发现如果我运行:
./manage.py 测试 -- -s
它忽略了 -s
并让我在自定义运行者的一侧捕获它,将它传递给 Nose 没有问题。
关于python - 运行 Django 测试时如何查看标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236285/