2017-12-06 140 views
10

Şimdiye kadar Jenkins aracılığıyla py.test'u arayabiliriz. py.test: Jenkins'de yerel değişkenleri göster

bir test başarısız olursa

, biz Django ayıklama sayfasında gibi yerel değişkenler ( https://djangobook.com/wp-content/uploads/figure2_3a.png bakınız) görebilseydin bu

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':", ...] 

gibi olağan StackTrace, gerçekten çok iyi olurdu görüyoruz.

.... Ancak onları görmek istersem görünür olmalılar. Sanırım bu, metinden farklı bir forma ihtiyacım var demektir. Belki HTML?

Bunu etkinleştirmenin bir yolu var mı?

Hiçbir zaman aracı Sentry kullanmamıştım. Ancak AFAIK bu, yerel değişkenlerle güzel geri dönüşler gösterebilir.

+0

moidule 'cgitb' yardımcı olabilir - 'cgitb.enable' (insert = 'text', context = 12) 'modülünün üst kısmına –

+0

@ CharlesPehlivanian'ı ekleyin. Ama bu varsayılan izlenimi şişirirdi. Yerel değişkenleri sadece bazen görmek istiyorum. Onları her zaman görürsem, o zaman günlük işler biraz daha zorlaşır ... – guettli

+0

Djangobook sayfasındaki gibi bir açılır menü kullanmak gibi mi? Düz metin bunu yapmayacak, böyle bir hizmetin ne olduğunu bilmiyorum ... –

cevap

7

Kullanım -l/--showlocals seçenek:

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

örnek:

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

a   = 1 

test_foo.py:8: AssertionError 

more details in the doc görüyoruz.

+0

Sadece yerel değişkenleri görmek istiyorum. Onları her zaman görürsem, o zaman günlük işler biraz daha zorlaşır .. – guettli

+1

tamam, ama çok yararlı olan tüm CI'ler için bu seçeneğe sahibim. – georgexsh

+0

@guettli, yakalanabilir veya olamaz. Testleri çalıştırmadan önce bazı yapılandırmalar değiştirilmeden bazen nasıl tanımlanır? –