Sto provando a utilizzare Test-Driven Development con il modulo pytest
. pytest non sarà print
alla console quando scrivo print
.Come stampare su console in Py Test?
Io uso py.test my_tests.py
di farlo funzionare ...
La documentation
sembra dire che dovrebbe funzionare in modo predefinito: http://pytest.org/latest/capture.html
Ma:
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.
Nulla viene stampato al mio standard output console (solo i normali progressi e quanti test hanno superato/fallito).
e lo script che sto testando contiene stampa:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
In unittest
modulo, tutto viene stampato di default, che è esattamente quello che mi serve. Tuttavia, desidero utilizzare pytest
per altri motivi. Sembra una funzionalità di base che forse mi manca !?
Qualcuno sa come visualizzare le istruzioni di stampa?
Forse lo stdout viene sovrascritto. Cosa succede se usi 'sys.stdout.write (" Test ")'? Che ne dite di 'sys .__ stdout __. Write (" Test ")'? Quest'ultimo dovrebbe sempre scrivere sullo stdout definito dal sistema, che dovrebbe essere la console. Se i due comandi fanno cose diverse, allora stdout viene cambiato; se fanno la stessa cosa, allora il problema è un'altra cosa. – TheSoundDefense