我正在尝试将TDD(测试驱动的开发)与 pytest
。
pytest
使用时不会print
进入控制台print
。
我正在pytest my_tests.py
运行它。
的 documentation
似乎是说,它应该是默认的工作:http://pytest.org/latest/capture.html
但:
import myapplication as tum
class TestBlogger:
@classmethod
def setup_class(self):
self.user = "alice"
self.b = tum.Blogger(self.user)
print "This should be printed, but it won't be!"
def test_inherit(self):
assert issubclass(tum.Blogger, tum.Site)
links = self.b.get_links(posts)
print len(links) # This won't print either.
什么都没有打印到我的标准输出控制台上(只是正常的进度以及通过/失败的测试数量)。
我正在测试的脚本包含打印:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
在unittest
模块中,默认情况下会打印所有内容,这正是我所需要的。但是,我想用pytest
出于其他原因。
有谁知道如何使打印报表显示出来?
sys.stdout.write("Test")
怎么办?怎么sys.__stdout__.write("Test")
样 后者应始终写入系统定义的标准输出,该标准输出应为控制台。如果这两个命令执行不同的操作,则将更改stdout;否则,将更改标准输出。如果他们做同样的事情,那么问题就出在别的地方。