提供初始数据django单元测试

时间:2017-06-08 09:04:14

标签: python sql django unit-testing

我正在研究一个有很多单元测试的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来提供初始数据。由于文档不是很清楚(从我的角度来看)如何在单元测试中使用灯具,我问这个问题是为了解如何解决这个问题的最佳实践/方法。

提前致谢

1 个答案:

答案 0 :(得分:0)

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

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

    def setUp(self):
        ...

    // test cases

有关https://docs.djangoproject.com/en/1.11/topics/testing/tools/#fixture-loading

的更多信息
相关问题