我最近使用普通的舊測試使用WebTest的切換,這種「沒有數據庫測試運行」我的測試如何不影響數據庫...?
from django.test.simple import DjangoTestSuiteRunner
class NoTestDbDatabaseTestRunner(DjangoTestSuiteRunner):
def setup_databases(self, **kwargs):
pass
def teardown_databases(self, old_config, **kwargs):
pass
下面是其中有以某種方式進入數據庫的實例測試...
發生了什麼?我的測試是否觸及數據庫但回滾到某個舊狀態?測試測試我可以看到每個創建的列表都有一個遞增的ID。
def test_image_upload(self):
form_data = self.listing_form_defaults.copy()
form_data['images-TOTAL_FORMS'] = '3'
upload_files = [
('images-0-image', 'testdata/1.png'),
('images-1-image', 'testdata/2.png'),
('images-2-image', 'testdata/3.png'),
]
form_resp = self.app.post(
reverse('listing_create'),
form_data,
upload_files=upload_files,
user='kmike'
).follow()
assert len(form_resp.context['listing'].images.all()) == 3
form_resp.context['listing'].images.all()
必須進入數據庫,我print
倒是它,它從我的數據庫有數據庫記錄。
我只是困惑 - 我的測試運行速度快,似乎並沒有真正改變我的數據庫,這是如何工作/發生?!
Django是開源的。深入代碼,我敢打賭,這是非常明顯的。 –
什麼部分的代碼............? –