在Django项目中,我使用selenium运行一些UI测试,使用LiveServerTestCase.
我的一个测试用例是失败的,当使用Firefox驱动程序时,我可以看到一个页面抛出"服务器错误(500)",这意味着DEBUG设置为False当我运行本地开发服务器时不是这种情况.
测试服务器是如何启动的?为什么不使用我定义的设置DEBUG = True?
其他URL(例如主页URL)返回正常,因此服务器正在运行.但我只是不明白为什么它没有显示调试信息,以及它正在使用的设置.
我的测试用例供参考:
class LoginTest(LiveServerTestCase):
@classmethod
def setUpClass(cls):
try:
from selenium.webdriver import PhantomJS
cls.selenium = PhantomJS()
except:
from selenium.webdriver.firefox.webdriver import WebDriver
cls.selenium = WebDriver()
super(LoginTest, cls).setUpClass()
@classmethod
def tearDownClass(cls):
cls.selenium.quit()
super(LoginTest, cls).tearDownClass()
def test_fb_login(self):
self.selenium.get('%s%s' % (self.live_server_url, reverse('account_login')))
# TEST SERVER RETURNS 500 ON THIS URL WITH NO DEBUG INFO
Run Code Online (Sandbox Code Playgroud)
无论配置文件中DEBUG设置的值如何,所有Django测试都以DEBUG = False运行.这是为了确保您观察到的代码输出与生产设置中的内容相匹配.
with self.settings(DEBUG=True):
...
Run Code Online (Sandbox Code Playgroud)
虽然我不推荐它,但它仍然可以不时有用.(Thomas Orozco的评论)
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |