J'essaye d'utiliser TDD (développement piloté par les tests) avec pytest
.
pytest
ne sera pas print
à la console lorsque je l'utilise print
.
J'utilise pytest my_tests.py
pour l'exécuter.
Le documentation
semble dire que cela devrait fonctionner par défaut: http://pytest.org/latest/capture.html
Mais:
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.
Rien n'est imprimé sur ma console de sortie standard (juste la progression normale et le nombre de tests réussis / échoués).
Et le script que je teste contient print:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
Dans le unittest
module, tout est imprimé par défaut, ce qui est exactement ce dont j'ai besoin. Cependant, je souhaite utiliser pytest
pour d'autres raisons.
Quelqu'un sait-il comment afficher les instructions d'impression?
sys.stdout.write("Test")
? Et pourquoi passys.__stdout__.write("Test")
? Ce dernier devrait toujours écrire dans la sortie standard définie par le système, qui devrait être la console. Si les deux commandes font des choses différentes, alors stdout est modifié; s'ils font la même chose, alors le problème est autre chose.