gpt4 book ai didi

django - 测试用例数据保存在Django开发数据库Selenium中

转载 作者:行者123 更新时间:2023-12-05 04:06:59 25 4
gpt4 key购买 nike

我有一个用于注册新用户的简单表格。我为它写了一个测试用例。它看起来如下:

class AccountTestCase(LiveServerTestCase):

def setUp(self):
self.selenium = webdriver.Firefox()
super(AccountTestCase, self).setUp()

def tearDown(self):
self.selenium.quit()
super(AccountTestCase, self).tearDown()

def test_register(self):
selenium = self.selenium
#Opening the link we want to test
selenium.get('http://localhost:8000/register/')
#find the form element
first_name = selenium.find_element_by_id('id_first_name')
last_name = selenium.find_element_by_id('id_last_name')
username = selenium.find_element_by_id('id_username')
email = selenium.find_element_by_id('id_email')
password1 = selenium.find_element_by_id('id_password1')
password2 = selenium.find_element_by_id('id_password2')

submit = selenium.find_element_by_id('btn_signup')

#Fill the form with data
first_name.send_keys('abc')
last_name.send_keys('abc')
username.send_keys('abc')
email.send_keys('abc@gmail.com')
password1.send_keys('abcabcabc')
password2.send_keys('abcabcabc')

#submitting the form
submit.send_keys(Keys.RETURN)

#check the returned result
self.assertTrue('Success!' in selenium.page_source)

当我第一次运行测试用例时,它顺利通过,但在第二次运行时失败了。

经过少量调查后,我意识到我的数据库中已经创建了一个具有来自测试用例的凭据的用户。因此,当我第二次运行测试用例时,它未能创建新用户,因为具有这些详细信息的用户已经存在。 (我可以从 Django 管理员看到用户)。

我相信这不是 LiveServerTestCase(或任何类型的测试用例)的预期行为。在设置中,创建一个临时数据库,在其上运行测试用例,并在拆卸阶段销毁。

我想知道,这是否是预期的行为?如果不是为什么会这样?我怎样才能避免这样做?

我没有对 settings.py 进行任何与 Selenium 或测试相关的更改(是否有标志或需要设置的东西?)。另外,我需要保持服务器运行才能正常工作(这正常吗?)。

最佳答案

正如@Paulo Almeida 所指出的:

我使用了错误的网址。我应该使用的 URL 是 self.live_server_url 。因为我使用的是 http://localhost:8000/register/ 它期望服务器正在运行并在那里创建记录。

谢谢。

关于django - 测试用例数据保存在Django开发数据库Selenium中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49177395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com