gpt4 book ai didi

python - Django:第二次 Selenium 测试失败,出现 500 服务器错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:44 25 4
gpt4 key购买 nike

我正在尝试向我的 Django 项目添加一些 selenium 测试,但第二个测试总是失败并出现 Server Error (500) 。由于两个测试的开始完全相同,我认为它一定与 setUptearDown 方法有关。有人可以帮忙吗?谢谢。

from django.test import LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from django.contrib.auth.models import User
from selenium.webdriver.support.ui import Select
class UserTest(LiveServerTestCase):
def setUp(self):
User.objects.create_user(username='user', password='pass', email='test@test.com')
self.browser = webdriver.Chrome()

def tearDown(self):
self.browser.quit()

def changeSelector(self, browser, value):
mealSelector = Select(browser.find_element_by_id('mealsToday'))
mealSelector.select_by_visible_text(str(value))

def login_user(self):
self.browser.get(self.live_server_url)
self.timeout(5)
self.assertIn('Animals', self.browser.title)
# Log in
login_button = self.browser.find_element_by_id('login').click()
self.browser.find_element_by_id('id_username').send_keys('user')
self.browser.find_element_by_id('id_password').send_keys('pass')

def timeout(self, time_to_sleep):
import time
time.sleep(time_to_sleep)

def test_one_test(self):
self.login_user()

def test_two_test(self):
self.login_user()

编辑:我应该提到第一个测试工作正常并返回成功。第一个测试失败后的任何测试都会在启动时出现 500 错误。

编辑 2:我在运行测试时看到的内容:

======================================================================
FAIL: test_two_test (functional_tests.tests.UserTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/functional_tests/tests.py", line 34, in test_two_test
self.login_user()
File "/functional_tests/tests.py", line 20, in login_user
self.assertIn('Animals', self.browser.title)
AssertionError: 'Animals' not found in 'http://localhost:8081/'

即使是这个最小的代码也会失败:

from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from django.contrib.auth.models import User
from selenium.webdriver.support.ui import Select
class UserTest(StaticLiveServerTestCase):
def setUp(self):
self.browser = webdriver.Chrome()

def tearDown(self):
self.browser.quit()

def login_user(self):
self.browser.get(self.live_server_url)
self.assertIn('Animals', self.browser.title)
def test_one_test(self):
self.login_user()

def test_two_test(self):
self.login_user()

第二次在第二种方法中调用 get 时,我可以看到出现了 500 错误并且没有正确加载任何内容。为什么会这样?

最佳答案

在一些代码之后能够向我显示错误(测试套件设置 DEBUG=False 以更接近地模拟真实环境)by setting DEBUG=True

然后我看到代码被轰炸了,因为那里没有系统预期的行。这是因为我在迁移脚本中添加了这一行。这通过了第一次测试,因为所有迁移脚本在测试开始时运行,但在第一次测试后所有数据被删除后,就再也不会添加了。

关于python - Django:第二次 Selenium 测试失败,出现 500 服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31011933/

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