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