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