我正在研究一个有很多单元测试的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来提供初始数据。由于关于如何在单元测试中使用夹具的文档(从我的观点来看)不是很清楚,我问这个问题是为了解解如何解决这个问题的最佳实践/方法。
提前致谢
我完全不了解你的担忧。但是,如果问题是加载初始数据(夹具)进行测试,可以通过以下过程完成:
class Test1(TestCase):
fixtures = [
"fixtures.json",
]
def setUp(self):
...
// test cases
有关https://docs.djangoproject.com/en/1.11/topics/testing/tools/#fixture-loading的更多信息