J'essaye d'utiliser TDD (développement piloté par les tests) avec pytest.
pytestne sera pas printà la console lorsque je l'utilise print.
J'utilise pytest my_tests.pypour l'exécuter.
Le documentationsemble 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 unittestmodule, tout est imprimé par défaut, ce qui est exactement ce dont j'ai besoin. Cependant, je souhaite utiliser pytestpour 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.