Я намагаюся використовувати 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, який має бути консоллю. Якщо дві команди роблять різні речі, то stdout змінюється; якщо вони роблять те саме, то проблема полягає в чомусь іншому.