class FunctionalTest(LiveServerTestCase):
def setUp(self):
print("setUp")
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(3)
def tearDown(self):
print("tearDown")
self.browser.quit()
class MyTest(FunctionalTest):
def test1(self):
cart = Cart.objects.create()
print(cart.id)
def test2(self):
cart = Cart.objects.create()
print(cart.id)
def test3(self):
cart = Cart.objects.create()
print(cart.id)
当我运行测试时,
setUp
1
tearDown
.setUp
2
tearDown
.setUp
3
tearDown
.
----------------------------------------------------------------------
Ran 3 tests in 7.024s
我不明白为什么每个测试函数的结果会影响其他测试函数(cart
的{{1}})
我的期望:
id
答案 0 :(得分:0)
这不是这里发生的事情。你的测试不相互影响。
LiveServerTestcase是TransactionTestcase和
的子类TransactionTestCase在测试运行后重置数据库 截断所有表格。 TransactionTestCase可以调用commit和 回滚并观察这些调用对数据库的影响。
截断表格不会重置自动icnrement计数器。默认情况下,所有django模型都有一个自动递增的主键。
当您执行以下操作时,您只是打印出最近创建的模型的主键,并且一直在增加。
Permission
相反,你应该做的是
print(cart.id)