我正在使用 selenium 测试一个 django 应用程序,我的代码如下所示:
class MyLiveServerTestCase(LiveServerTestCase):
def setUp(self):
super(MyLiveServerTestCase, self).setUp()
self.client = Client()
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(30)
self.browser.stop = lambda x: WebDriverWait(self.browser, x).until(lambda x: False)
self.browser.get_body = lambda: self.browser.find_element_by_tag_name('body')
def tearDown(self):
super(MyLiveServerTestCase, self).tearDown()
self.browser.quit()
def login_staff(self):
User.objects.create_superuser('abc', 'abc@gmail.com', '1234')
# User opens his web browser, and goes to the website
self.browser.get(self.live_server_url)
# User types in his username and passwords and hits return
username_field = self.browser.find_element_by_name('username')
username_field.send_keys('abc')
password_field = self.browser.find_element_by_name('password')
password_field.send_keys('1234')
# User submits the form
password_field.send_keys(Keys.RETURN)
body = self.browser.find_element_by_tag_name('body')
self.assertIn('abc', body.text)
当我运行这个测试用例时login_staff
,我得到一个错误
IntegrityError:唯一约束失败:auth_user.username
因为在开始我的每个测试用例时,我都在创建一个新的数据库和用户实例,那么为什么会出现这个完整性错误呢?有没有办法在这里刷新以前的数据库?知道为什么即使在运行这个测试时创建了一个新数据库,这个错误仍然会出现吗?