[英]Django LiveServerTestCase fails to load a page when I run multiple tests
[英]Django: why i can't get the tracebacks (in case of error) when i run LiveServerTestCase tests?
我正在用Selenium寫一些測試。
當我運行我的selenium測試( LiveServerTestCase
類型)並且我的代碼中有一些錯誤(不是在測試中,我的意思是在執行的代碼中,就像我用selenium到達的主頁視圖)我得到500模板(通常我得到當我有DEBUG = False)即使我有:
DEBUG = True
INTERNAL_IPS = ('127.0.0.1',)
我堅持這一點,我不明白為什么我的測試失敗(因為在公眾500我沒有顯示例外)。
為什么它表現得那樣? 我在哪里可以解決?
當我運行runserver時它完美運行(我得到回溯)。
來自django docs https://docs.djangoproject.com/en/1.4/topics/testing/#other-test-conditions
現在似乎無法覆蓋這一點,即使使用https://docs.djangoproject.com/en/1.4/topics/testing/#django.test.utils.override_settings
在返回500響應時查看調試信息的唯一方法是記錄它。
編輯:我找到了一種在我的硒測試中設置DEBUG = True
的方法。 在我的子類中,我重寫構造函數並更改設置。
from django.conf import settings
class SeleniumLiveServerTestCase(LiveServerTestCase):
def __init__(self, *args, **kwargs):
super(SeleniumLiveServerTestCase, self).__init__(*args, **kwargs)
if settings.DEBUG == False:
settings.DEBUG = True
它很丑,但有效!
我遇到了同樣的問題,現在可以覆蓋設置。
根據您的示例,您將導入override_settings
並將裝飾器放在類的上方:
from django.test import override_settings
@override_settings(DEBUG=True)
class SeleniumLiveServerTestCase(LiveServerTestCase):
...
django docs中的詳細信息
我自己並不十分熟悉Selenium測試套件,但我知道如果你正在部署應用程序並且你的IP地址沒有在“INTERNAL_IPS”元組中注冊,即使將DEBUG設置為,你也可能看不到回溯真正。 當您使用Django的runserver時,它會自動將您的本地計算機添加到INTERNAL_IPS設置,但通常這是一個空元組。 我敢打賭,Selenium並沒有為你做這件事,這可能就是你沒有看到追溯的原因。 如果你還沒有,我會嘗試添加它。
像這樣的東西應該工作正常:
INTERNAL_IPS = ('127.0.0.1',)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.