Django LiveTestServerCase not using proper settings

django, selenium

Solution

According to Testing Django Application - Django Documentation:

Regardless of the value of the DEBUG setting in your configuration file, all Django tests run with DEBUG=False. This is to ensure that the observed output of your code matches what will be seen in a production setting.

It should still be possible to override this using:

with self.settings(DEBUG=True):
    ...

Although I wouldn't recommend it, it can still be useful from time to time. (Thomas Orozco's comment)

Problem

In a Django project I'm using selenium to run some UI tests, using a `LiveServerTestCase`. One of my test cases is failing, and when using the Firefox driver I can see a page throwing "Server Error (500)", which means `DEBUG` is set to `False` which is not the case when I run the local development server. How is the test server being launched? Why is not using my settings which define `DEBUG = True`? Other URLs (such as the homepage URL) return fine, so the server is working. But I just don't get why it's not showing debug information, and which settings it's using. My test case for reference: ``` 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 ```

Original source