Django 测试中的身份验证失败
Authentication failed in Django test
在 Django 中,我尝试创建一个用户,然后尝试使用 selenium 登录该用户,但是当我 运行 测试失败时,它显示身份验证错误。这是我的代码:
class LoginFunctionalTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(3)
# self.browser.get('http://localhost:8000')
def tearDown(self):
self.browser.quit()
def test_login_page(self):
self.browser.get('http://localhost:8000')
self.assertIn('Hiren->Login', self.browser.title)
def test_login_form(self):
self.browser.get('http://localhost:8000')
user = User.objects.create_user('testHiren', 'myemail@test.com', 'testPass')
user.save()
username = self.browser.find_element_by_id('username-id')
password = self.browser.find_element_by_id('password-id')
submit = self.browser.find_element_by_id('login-button')
username.send_keys('testHiren')
password.send_keys('testPass')
submit.click()
time.sleep(10) # if authentication successful its redirects to /dashboard
location = self.browser.current_url
self.assertEqual('http://localhost:8000/dashboard', location)
知道它失败的原因吗?
所以我发现这个 FN 测试使用的是默认数据库而不是测试数据库,所以我更改了流程
在 Django 中,我尝试创建一个用户,然后尝试使用 selenium 登录该用户,但是当我 运行 测试失败时,它显示身份验证错误。这是我的代码:
class LoginFunctionalTest(unittest.TestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(3)
# self.browser.get('http://localhost:8000')
def tearDown(self):
self.browser.quit()
def test_login_page(self):
self.browser.get('http://localhost:8000')
self.assertIn('Hiren->Login', self.browser.title)
def test_login_form(self):
self.browser.get('http://localhost:8000')
user = User.objects.create_user('testHiren', 'myemail@test.com', 'testPass')
user.save()
username = self.browser.find_element_by_id('username-id')
password = self.browser.find_element_by_id('password-id')
submit = self.browser.find_element_by_id('login-button')
username.send_keys('testHiren')
password.send_keys('testPass')
submit.click()
time.sleep(10) # if authentication successful its redirects to /dashboard
location = self.browser.current_url
self.assertEqual('http://localhost:8000/dashboard', location)
知道它失败的原因吗?
所以我发现这个 FN 测试使用的是默认数据库而不是测试数据库,所以我更改了流程