提供初始数据django单元测试

问题描述 投票:-1回答:1

我正在研究一个有很多单元测试的Django应用程序。 非托管模型中的一些测试功能(Manage = False)。为了测试它们,setUpClass中有一些sql文件的执行。

现在,在Django 1.11.2升级之后,在执行sql文件期间会引发一些警告。 警告如下:

Warning: Unknown table '<table name>' return self.cursor.execute(query, args)

我搜索了这个警告的原因,似乎它链接到sql文件,在创建或删除它之前检查表是否存在。

我会删除这个警告,为了做到这一点,我想删掉tearDownClass中的表,以便删除sql文件中的IF EXISTS语句。 我认为这种方法使单元测试变慢,我不知道它是否是最佳实践。

此外,我在Django文档中发现可能使用fixtures来提供初始数据。由于关于如何在单元测试中使用夹具的文档(从我的观点来看)不是很清楚,我问这个问题是为了解解如何解决这个问题的最佳实践/方法。

提前致谢

python sql django unit-testing
1个回答
0
投票

我完全不了解你的担忧。但是,如果问题是加载初始数据(夹具)进行测试,可以通过以下过程完成:

class Test1(TestCase):
    fixtures = [
       "fixtures.json",
    ]

    def setUp(self):
        ...

    // test cases

有关https://docs.djangoproject.com/en/1.11/topics/testing/tools/#fixture-loading的更多信息

© www.soinside.com 2019 - 2024. All rights reserved.