でTDD(テスト駆動開発)を使用しようとしていますpytest
。
私が使用するときにコンソールにpytest
はありません。print
print
私はpytest my_tests.py
それを実行するために使用しています。
はdocumentation
デフォルトで動作するはずだと言っているようです:http : //pytest.org/latest/capture.html
だが:
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.
標準出力コンソールには何も出力されません(通常の進行状況と、合格/不合格となったテストの数だけ)。
そして、私がテストしているスクリプトにはprintが含まれています。
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
ではunittest
モジュール、すべては私が必要とする正確に何である、デフォルトで印刷されます。しかし、pytest
他の理由で使用したいと思います。
印刷文を表示する方法を知っている人はいますか?
sys.stdout.write("Test")
か?いかがsys.__stdout__.write("Test")
ですか?後者は、常にシステム定義のstdout(コンソール)に書き込む必要があります。2つのコマンドの動作が異なる場合、stdoutが変更されています。彼らが同じことをするなら、問題は別のものです。