class MyClassTest(TestCase):
def setUp(self):
Someclass.objects.create()
def test_first_test(self):
# Here, Someclass.objects.all()[0].pk -> returns 1
def test_second_test(self):
# Here, Someclass.objects.all()[0].pk -> returns 2 !!! (bad !)
使用SetUp()
方法,应该在每次测试之间清除并重新创建数据。 那么,为什么ids会从一个测试增加到另一个?这对我来说并不明显。为什么在Django的测试中对象主键增加?
这样我就不能做基于ID的测试(因为它们取决于其他测试)。 这就是为什么我总想得到1
的结果。
请注意,我对数据本身没有任何问题,旧数据很好地从一个测试清除到另一个测试。问题只是关于IDS。
我在这里读到django object ids increment between unit tests问题是关系到数据库,而不是Django,但Django中有没有什么窍门可以改变它?
我不知道理解。我没有自己清理数据,Django在每次测试之间为我做了这些。数据实际上已被清除,问题仅与ID有关。 – 2014-10-31 00:32:01
除非您使用固定装置(它会覆盖特定的ID),否则可能会删除这些值,但数据库仍可能使用连续的ID。 – monkut 2014-10-31 00:36:11