Estou tentando usar TDD (desenvolvimento orientado a teste) com pytest
.
pytest
não vai print
para o console quando eu uso print
.
Estou usando pytest my_tests.py
para executá-lo.
O documentation
parece dizer que ele deve funcionar por padrão: http://pytest.org/latest/capture.html
Mas:
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.
Nada é impresso no meu console de saída padrão (apenas o progresso normal e quantos testes foram aprovados / reprovados).
E o script que estou testando contém print:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
No unittest
módulo, tudo é impresso por padrão, que é exatamente o que eu preciso. No entanto, desejo usar pytest
por outros motivos.
Alguém sabe como fazer com que as instruções de impressão sejam exibidas?
sys.stdout.write("Test")
? Que talsys.__stdout__.write("Test")
? O último deve sempre gravar no stdout definido pelo sistema, que deve ser o console. Se os dois comandos fazem coisas diferentes, o stdout está sendo alterado; se eles fazem a mesma coisa, então o problema é outra coisa.