我正在使用Django测试运行程序来运行我的单元测试。有些测试使用在本地系统上创建大量文件的工厂。它们都有一个可检测的名字,可以很容易地删除。在
我尽量不去做这两件事
- 保持文件删除cron作业运行
- 如果检测到我们正在测试,请更改自定义图像模型的代码以删除该文件。相反,我希望在测试运行结束时运行一次(并且只运行一次)命令来清理测试生成的所有文件。在
我写了一个小的管理命令,删除符合预期约定的文件。有没有一种方法可以让测试运行程序在完成整个测试套件后运行call_command
(而不仅仅是在特定测试的tearDown
或{}方法中)?在
Tags:
我们这样做是为了创建一个自定义的亚军测试来结束的设置.py公司名称:
然后在testrunner中,我们从继承自现有juno test runner的测试运行程序的“teardown_test_environment”方法中删除图像。在
^{pr2}$此方法在测试方法的分解时被调用,似乎是一个很好的地方,可以确保它在结束时被调用一次,而且只调用一次。在
您可以利用django测试运行程序命令测试的方式(参见https://docs.djangoproject.com/en/1.11/topics/testing/overview/#order-in-which-tests-are-executed)
如果您的测试用例是从django的TestCase类继承的,那么您可以创建一个直接继承自的虚拟清理测试用例unittest.TestCase. 测试运行程序将最后执行,您可以在那里进行清理。在
但是,如果django开发人员决定对测试顺序进行更改,这将中断。在
如果您创建一个服务.py与在同一文件夹中的文件模型.py,可以将清理代码放入其中,然后在保持其干燥的同时从管理命令和测试拆卸调用它。在
相关问题 更多 >
编程相关推荐