Я пытаюсь использовать 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.
Ничего не выводится на мою стандартную консоль вывода (только обычный прогресс и сколько тестов пройдено / не выполнено).
И скрипт, который я тестирую, содержит print:
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 изменяется; если они делают то же самое, то проблема в другом.