0

我想在我的 django 项目中的 test.py 中有不同的测试用例类。一个用于模型测试(crud)一个用于视图测试等。我有以下课程

class EntryModelTest(TestCase):
    LOG = logging.getLogger(__name__)

    @classmethod
    def setup_database(cls):
       #database initialization


    @classmethod
    def setUpClass(cls):
        super(EntryModelTest, cls).setUpClass()
        cls.setup_database()
        cls.myModel = MyModel.objects.get(pk=1)
        #some queries (additions) that use things that were added in setup_database()

和第二个测试用例

class MyCalViewsTest(TestCase):
    LOG = logging.getLogger(__name__)

    @classmethod
    def setup_database(cls):
        #exactly the same code as above testcase(I know I could use Inheretiance. Will refactor)

    @classmethod
    def setUpClass(cls):
        #The same as above testcase
        cls.myModel = MyModel.objects.get(pk=1) #this gives the following error: DoesNotExist: PracticeData matching query does not exist.

MyModel 实例是在 setup_database 方法中创建的。我不太清楚为什么。如果在执行每个测试用例类后破坏了测试数据库,那么 setup_database 方法应该重新创建了 pk=1 的 MyModel 实例,这样我就已经存在了。如果它没有破坏测试数据库,那么 pk=1 的 MyModel 实例已经存在,所以我也不应该有任何问题。任何帮助,将不胜感激。

4

0 回答 0