python - 尝试使用 Nose 捕获详细的标准输出输出

标签 python nose

在尝试为我的项目设置 python unittest 发现路径时遇到麻烦后,我用 Nose 再次尝试。我正在尝试打印出详细的输出,据称该输出默认由 Nose 捕获(根据 http://nose.readthedocs.org/en/latest/plugins/capture.html )

我有:

arg =sys.argv[:1]
arg.append('--verbosity=2')
out = nose.run(module=ft1.test_y1, argv=arg)

但是“out”是一个 bool 值

我怎样才能让它工作?

最佳答案

您最好的选择是禁用该插件并使用其他方式捕获标准输出,例如所述 here :

import sys
import nose
from cStringIO import StringIO    

def basic_test():
    print "hello"

if __name__=="__main__":
    module_name = sys.modules[__name__].__file__

    old_stdout = sys.stdout
    sys.stdout = mystdout = StringIO()
    result = nose.run(argv=[sys.argv[0],
                            module_name,
                            '-s'])
    sys.stdout = old_stdout
    print mystdout.getvalue()

当像这样运行时,你将得到:

.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
hello

关于python - 尝试使用 Nose 捕获详细的标准输出输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588626/

相关文章:

python - 测试安装的 Python 包

python - 如何编写装饰器在未导入模块时跳过某些测试?

python - 如何在 pandas 中将 N/A (NaT) 转换为 0

python - 检查多行 pandas 中标志列的有效性

python - 从管理命令运行时,Django-nose 测试用例给出断言错误

python - 让 Nose 忽略名称中带有 'test' 的函数

python - django doctests 没有运行

来自不同项目的 Python 导入包

Python 的 re.findAll() 函数无法按预期工作

python - 在 pyswarm 中选择初始位置(粒子群优化)