【发布时间】:2015-10-21 22:55:53
【问题描述】:
我遇到的问题是我的功能测试没有与主数据库隔离,测试中有剩余的数据。我运行了 python manage.py flush 并且测试工作正常,但是当我再次运行测试时,应该删除的测试创建的数据仍然存在,使我的测试失败。我目前只使用 SQLite。
functional_test.py
from django.test import LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
class NewUserTest(LiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(15)
def tearDown(self):
self.browser.quit()
def test_user(self):
#Some test
【问题讨论】:
-
这是默认行为。您需要在测试完成后显式删除不需要的任何测试数据。一种策略是每次都删除/创建数据库,并且在运行 selenium 测试之前只加载一组预先知道的测试装置。
-
@AronYsidoro 你知道自动删除测试创建的数据,而不必在每次测试后运行 manage.py flush
-
看看这个问题。似乎是一个类似的问题:stackoverflow.com/questions/17435155/…
-
谢谢,我想通了,这实际上与功能测试文件夹中文件的命名方式有关。我有一个更冗长的名称 test_this_thing.py,我将其重命名为 tests.py,但由于某种原因它起作用了。