2017-12-06 7 views
10

これまでJenkins経由でpy.testと呼んでいます。py.test:Jenkinsのローカル変数を表示

テストが失敗した場合、我々は(https://djangobook.com/wp-content/uploads/figure2_3a.pngを参照してください)私は、Djangoのデバッグページのようにローカル変数を見ることができればそれは、本当に素晴らしいことだ。この

Traceback (most recent call last): 
    File "/home/u/src/foo/bar/tests/test_x.py", line 36, in test_schema_migrations 
    errors, out)) 
AssertionError: Unknown output: ["Migrations for 'blue':", ...] 

のような通常のスタックトレースを参照してください。

....しかし、私はそれらを見たい場合にのみ表示する必要があります。私は、これは私がテキストとは異なるフォーマットを必要としていることを意味すると思います。たぶんHTML?

これを有効にする方法はありますか?

私は決してツールセントリを使用しませんでした。しかしAFAIKでは、ローカル変数を使って素晴らしいトレースバックを表示できます。

+0

moidule 'cgitb'は助けることができます - モジュールの上部に' cgitb.enable(format = 'text'、context = 12)を挿入してください。 –

+0

@CharlesPehlivanianはいこれはうまくいく可能性があります。しかし、これはデフォルトの印象を膨らませるでしょう。私は時々だけローカル変数を見たいと思う。私がそれらをいつも見ると、日々の仕事は少し難しくなります... – guettli

+0

djangobookのページのようにドロップダウンを使うのと同じですか?プレーンテキストはそれをしません、そのようなサービスが存在するかわからない... –

答えて

7

使用-l/--showlocalsオプション:

pytest --showlocals # show local variables in tracebacks 
pytest -l   # show local variables (shortcut) 

例:

def foo(): 
     a = 1 
>  assert 0 
E  assert 0 

a   = 1 

test_foo.py:8: AssertionError 

more details in the docを参照してください。

+0

時々だけローカル変数を見たいと思っています。私がそれらをいつも見ると、毎日の仕事はやや難しくなります。 – guettli

+1

大丈夫ですが、私はすべてのCIについてこのオプションを持っています。これはとても便利です。 – georgexsh

+0

@guettli、それはキャプチャされることもできないこともあります。テストを実行する前にいくつかの設定を変更せずに時々定義する方法はありますか? –

関連する問題