2012-03-08 39 views
20

Có cách nào để tạo báo cáo chứa phạm vi mã trong bộ kiểm tra django của tôi cho các mẫu trang web của tôi không? Tôi đã có bảo hiểm cho python, nhưng bảo hiểm cho các mẫu để xác định mã mẫu chết hoặc chưa được kiểm tra sẽ là tuyệt vời.Vùng phủ sóng kiểm tra mẫu Django

Để làm rõ: Tôi muốn tìm các dòng trong các mẫu của mình không bao giờ được thực thi hoặc được phát ra trong bộ thử nghiệm của tôi.

+0

django-debug-toolbar [bắt thông tin mẫu] (https://github.com/django-debug-toolbar/django-debug-toolbar/blob/master/debug_toolbar/panels/template.py) có thể sẽ truyền cảm hứng bạn. – jpic

Trả lời

1

Mẫu không lưu trữ bất kỳ loại thông tin số dòng nào như mã nguồn python. Điều tốt nhất bạn có thể làm là khỉ vá đối tượng NodeList để ghi lại số lần mỗi nút đã được đánh giá và sau đó trả lại các mẫu trong một chế độ đặc biệt sẽ cho biết các nút nào được đánh giá.

EDIT: Tôi đã được sửa chữa.

Mẫu lưu trữ thông tin số dòng, nhưng chỉ để bắt đầu mã thông báo. I E. nếu bạn có một TextNode span nhiều dòng, bạn sẽ cần phải xử lý đó cho mình. Có một số mã thú vị trong django.templates.debug có thể hữu ích cho việc xây dựng một trình báo cáo bảo hiểm như vậy.

+1

Bạn không nhận được số dòng trong các lỗi mẫu? – jterrace

0

Tôi không nghĩ rằng bạn có thể nhận thông tin bảo hiểm từ mẫu, nhưng bạn có thể tìm hiểu mẫu nào được hiển thị bằng cách kết nối template_rendered signal. Người nhận của bạn sẽ lưu trữ tên của các mẫu được hiển thị.

Sau đó, bạn có thể dễ dàng tìm ra các mẫu nào là không phải là được hiển thị bằng lệnh tìm.

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