我有一个python功能测试,我从另一个函数运行:
unittest.main(module=ft1.y1, argv=sys.argv[:1], exit=False)
我想将输出捕获到变量中。
我试过
out = unittest.main(module=ft1.y1, argv=sys.argv[:1], exit=False)
print 'out ' + str(out)
这导致
的响应out
我做错了什么?
答案 0 :(得分:1)
您需要将sys.stdout
重定向到字符串缓冲区。
有两种方法可以查看此问题的答案:Can I redirect the stdout in python into some sort of string buffer?
答案 1 :(得分:1)
为什么要从其他功能运行单元测试? 为什么你不使用标准跑步者?例如
class MyTestCase(unittest.TestCase):
...
# tests
suite = unittest.TestLoader().loadTestsFromTestCase(MyTestCase)
unittest.TextTestRunner(verbosity=2).run(suite)
P.S。我把这篇文章写成了答案,因为我没有足够的分数把它写成评论。