/ / Django LiveServerTestCaseは、テストを実行するとハングします-django、django-testing、django-tests

私のテストを実行すると、Django LiveServerTestCaseがハングアップする - django、django-testing、django-tests

LiveServerTestCaseをセットアップしようとしていますDjango1.10.4。テストを実行するたびに、ブラウザが開いてローカルホストに到達できません。フロントエンドは別のAngular / Reactアプリです。そこで、grunt buildを使用して静的アセットをビルドしてから、collectstaticを実行します。テストのコードは次のとおりです。 。

from django.test.testcases import LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By



class ChromeTestCase(LiveServerTestCase):

@classmethod
def setUpClass(cls):
super(ChromeTestCase, cls).setUpClass()
cls.driver = webdriver.Chrome("/path/to/chromedriver")
cls.driver.implicitly_wait(10)
cls.wait = WebDriverWait(cls.driver, 10)

@classmethod
def tearDownClass(cls):
cls.driver.quit()
super(ChromeTestCase, cls).tearDownClass()

def test_user_sign_up_from_form(self):
self.driver.get("%s%s" % (self.live_server_url, "/"))

self.wait.until(EC.presence_of_element_located((By.XPATH, "//input[@id="email"]")))
email_input = self.driver.find_element_by_xpath(
"//input[@id="email"]")
email_input.send_keys("test@gmail.com")
password_input = self.driver.find_element_by_xpath(
"//input[@id="password"]")
password_input.send_keys("secret")

signup_button = self.driver.find_elements_by_xpath(
"//*[@id="signup_button"]")
signup_button.click()

url = self.live_server_url + "/home"
self.assertEquals(self.driver.current_url, url)

私のテストがテストサーバーに到達できない理由を誰かが知っていますか?

また、テストサーバーが作成するURLはhttpsです。

回答:

回答№1は2

この問題は、本番環境でリクエストをhttpsにリダイレクトするミドルウェアに関連することになりました。そのミドルウェアを削除することで、テストを機能させました。


回答№2の場合は0

有効にすることができます DEBUG 〜と LiveServerTestCase、次の行を追加します。

from django.test import override_settings

@override_settings(DEBUG=True)
class ChromeTestCase(LiveServerTestCase):