2016-10-19 25 views
5

Tôi biết rằng các trường hợp thử nghiệm django được thực hiện với DEBUG = False và TEMPLATE_DEBUG = False và tôi có thể thay đổi thành True đối với một chức năng cụ thể, sử dụngLàm thế nào để làm cho trường hợp thử nghiệm thất bại nếu một mẫu django có lỗi hiển thị sẽ âm thầm thất bại trong sản xuất

from django.test.utils import override_settings 

@override_settings(DEBUG=True) 
def test_one_function(self): 
    # This test should be failing and is not. 
    # If I did not test manually I would'nt know ! 
    pass 

Nhưng có thể có giải pháp tốt hơn, chung chung hơn áp dụng cho eveything cùng một lúc?

Tôi gặp lỗi trong mẫu của mình: Tôi đã bao gồm một mẫu khác và liên kết bị hỏng. Nếu tôi kiểm tra thủ công bằng DEBUG = True, tôi nhận được lỗi TemplateDoesNotExist. Nhưng trong trường hợp thử nghiệm của tôi, url được hiển thị mà không có sự bao gồm bị hỏng, nó không ném một lỗi và http_status là 200. Tôi đã thử nghiệm mẫu được bao gồm chung ở một nơi khác, vì vậy tôi không muốn thêm kiểm tra để xem nội dung bên trong được hiển thị chính xác. Nhưng tôi muốn thấy hiển thị không thành công, đó là những gì thử nghiệm của tôi dành cho!

Tôi đã cố gắng đặt TEMPLATE_STRING_IF_INVALID thành Ngoại lệ (được tìm thấy here), nhưng dường như không hoạt động cho một gói bị hỏng.

Có cách nào để làm cho tất cả lỗi hiển thị tăng lên ngoại lệ trong khi kiểm tra, mà không vi phạm nguyên tắc thiết kế của django không chạy thử nghiệm trong gỡ lỗi không?

Trả lời

0

Your question is solved here

Có sự khác biệt giữa mẫu mất tích và đối tượng mất tích, TEMPLATE_STRING_IF_INVALID được gọi khi có đối tượng mất tích trong bối cảnh

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