2017-05-16 15 views
3

Django 1.10.4でLiveServerTestCaseを設定しようとしています。テストを実行するたびに、ブラウザがハングアップしてlocalhostにアクセスできなくなります。私のフロントエンドは別の角度/反応アプリです。そこで、私はgruntビルドを使用して静的資産を構築し、collectstaticを実行します。以下は私のテストのコードです。テストを実行すると、Django LiveServerTestCaseがハングします

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("[email protected]") 
     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です。

+0

はあなたのjsとネットワークをデバッグしましたか?ティアダウンにコメントするとブラウザが残り、develツールを開くことができます。そして、私はより安全なphantomjsブラウザを見つけました。 – XaviP

+0

コンソールをチェックすると、localhost:8011 /にERR_CONNECTION_REFUSEDというエラーが表示され、ネットワークタブにリソースエラーをロードできませんでした。 phantomjsの提案に感謝します。 – alexkeating

答えて

2

問題は、本番環境でhttpsにリクエストをリダイレクトするミドルウェアに関連していました。私はそのミドルウェアを削除してテストを行った。

0

あなたはこれらの行を追加し、LiveServerTestCaseDEBUGを有効にすることができます。

from django.test import override_settings 

@override_settings(DEBUG=True) 
class ChromeTestCase(LiveServerTestCase): 
関連する問題