[解決済み】pytestでコンソールに印刷する方法は?
質問内容
で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
というのは、他の理由からです。
print文が表示されるようにする方法をご存知の方はいらっしゃいますか?
どのように解決するのですか?
デフォルトでは
py.test
は標準出力結果をキャプチャし、どのように出力するかを制御できるようにします。もしそうしなければ、どのようなテストがそのテキストを出力したかという文脈なしに、たくさんのテキストが吐き出されることになります。
しかし、テストが失敗した場合、結果のレポートに、その特定のテストで標準出力に何が出力されたかを示すセクションが含まれることになります。
例えば
def test_good():
for i in range(1000):
print(i)
def test_bad():
print('this should fail!')
assert False
結果は以下のように出力されます。
>>> py.test tmp.py
============================= test session starts ==============================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cache, cov, pep8, xdist
collected 2 items
tmp.py .F
=================================== FAILURES ===================================
___________________________________ test_bad ___________________________________
def test_bad():
print('this should fail!')
> assert False
E assert False
tmp.py:7: AssertionError
------------------------------- Captured stdout --------------------------------
this should fail!
====================== 1 failed, 1 passed in 0.04 seconds ======================
注意
Captured stdout
の部分を削除します。
を表示させたい場合は
print
ステートメントが実行されるときに
-s
フラグを
py.test
. ただし、この場合、解析が困難になることがあるので注意が必要です。
>>> py.test tmp.py -s
============================= test session starts ==============================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cache, cov, pep8, xdist
collected 2 items
tmp.py 0
1
2
3
... and so on ...
997
998
999
.this should fail!
F
=================================== FAILURES ===================================
___________________________________ test_bad ___________________________________
def test_bad():
print('this should fail!')
> assert False
E assert False
tmp.py:7: AssertionError
====================== 1 failed, 1 passed in 0.02 seconds ======================
関連
-
python string splicing.join()とsplitting.split()の説明
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] 改行やスペースを入れずに印刷する方法
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python関数の高度な応用を解説
-
python call matlab メソッドの詳細
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].