2017-12-06 48 views
10

Cho đến bây giờ chúng tôi gọi số py.test qua Jenkins.py.test: Hiển thị các biến cục bộ trong Jenkins

Nếu một thử nghiệm thất bại, chúng ta thấy stacktrace thông thường như thế này

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

Nó sẽ thực sự tuyệt vời, nếu tôi có thể thấy các biến địa phương như trong trang django debug (Xem https://djangobook.com/wp-content/uploads/figure2_3a.png).

.... Nhưng chúng chỉ nên hiển thị nếu tôi muốn xem chúng. Tôi đoán điều này có nghĩa là tôi cần một định dạng khác với văn bản. Có lẽ HTML?

Có cách nào để bật tính năng này không?

Tôi chưa bao giờ sử dụng công cụ Sentry. Nhưng AFAIK này có thể hiển thị các tracebacks đẹp với các biến cục bộ.

+0

moidule 'cgitb' có thể giúp - chèn' cgitb.enable (format = 'text', context = 12) 'ở đầu mô-đun –

+0

@CharlesPehlivanian có điều này có thể hoạt động. Nhưng điều này sẽ làm tăng ấn tượng mặc định. Tôi chỉ muốn xem các biến cục bộ đôi khi. Nếu tôi nhìn thấy chúng luôn, thì công việc hàng ngày sẽ khó hơn một chút ... – guettli

+0

Giống như sử dụng danh sách thả xuống như trên trang djangobook? Văn bản thuần tuý sẽ không thực hiện, không biết dịch vụ nào tồn tại như vậy ... –

Trả lời

7

Sử dụng -l/--showlocals tùy chọn:

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

dụ:

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

a   = 1 

test_foo.py:8: AssertionError 

thấy more details in the doc.

+0

Tôi chỉ muốn xem các biến cục bộ đôi khi. Nếu tôi thấy chúng luôn luôn, thì công việc hàng ngày sẽ khó hơn một chút .. – guettli

+1

okay, nhưng tôi có tùy chọn này cho tất cả các CIs của tôi, điều này rất hữu ích. – georgexsh

+0

@guettli, nó có thể bị bắt hoặc không thể. Làm thế nào một trong những xác định đôi khi mà không thay đổi một số cấu hình trước khi chạy các bài kiểm tra? –

Các vấn đề liên quan