Django4.0 進(jìn)階測試主題-強制按順序運行測試類

2022-03-17 12:00 更新

如果你有一些測試類不能并行運行(例如,因為它們共享一個公共資源),你可以使用 ?django.test.testcases.SerializeMixin? 來依次運行它們。這個 ?mixin ?使用一個文件系統(tǒng) ?lockfile?

例如,你可以使用 ?__file__? 來確定同一文件中所有繼承自 ?SerializeMixin ?的測試類將依次運行:

import os

from django.test import TestCase
from django.test.testcases import SerializeMixin

class ImageTestCaseMixin(SerializeMixin):
    lockfile = __file__

    def setUp(self):
        self.filename = os.path.join(temp_storage_dir, 'my_file.png')
        self.file = create_file(self.filename)

class RemoveImageTests(ImageTestCaseMixin, TestCase):
    def test_remove_image(self):
        os.remove(self.filename)
        self.assertFalse(os.path.exists(self.filename))

class ResizeImageTests(ImageTestCaseMixin, TestCase):
    def test_resize_image(self):
        resize_image(self.file, (48, 48))
        self.assertEqual(get_image_size(self.file), (48, 48))


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號