Estoy tratando de usar TDD (desarrollo basado en pruebas) con pytest
.
pytest
No print
a la consola cuando lo uso print
.
Estoy usando pytest my_tests.py
para ejecutarlo.
El documentation
parece decir que debería funcionar por defecto: http://pytest.org/latest/capture.html
Pero:
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.
No se imprime nada en mi consola de salida estándar (solo el progreso normal y cuántas pruebas pasaron / fallaron).
Y el script que estoy probando contiene print:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
En el unittest
módulo, todo se imprime por defecto, que es exactamente lo que necesito. Sin embargo, deseo utilizarlo pytest
por otros motivos.
¿Alguien sabe cómo hacer que se muestren las declaraciones impresas?
sys.stdout.write("Test")
? ¿Qué talsys.__stdout__.write("Test")
? Este último siempre debe escribir en el stdout definido por el sistema, que debe ser la consola. Si los dos comandos hacen cosas diferentes, entonces se está cambiando stdout; si hacen lo mismo, entonces el problema es otra cosa.