【问题标题】:Python Django Unittests: How to tear down fixturesPython Django 单元测试:如何拆除固定装置
【发布时间】:2014-02-04 10:36:47
【问题描述】:

我需要为我的 Django-App 编写一些测试。为此,我正在使用这样加载的固定装置:

    from django.test import TestCase    

    class PermissionTest(TestCase):
        fixtures = ['test_groups.json','test_users.json']

        def setUp(self):       
        ... some other stuff

现在我想知道在我的 tearDown-Method 中写什么来删除从我的装置生成的组和用户。还是自动删除?

        def tearDown(self):
            ... what has to go here?

【问题讨论】:

    标签: python django


    【解决方案1】:

    在运行每个测试之前,django 的测试框架将负责删除加载的固定装置。所以你不需要处理这个。

    来自docs

    具体情况如下:

    在每个测试用例开始时,在运行 setUp() 之前,Django 会刷新数据库,将数据库返回到调用 migrate 后直接所处的状态。

    然后,安装所有命名的灯具。在此示例中,Django 将安装任何名为哺乳动物的 JSON 固定装置,然后安装任何名为鸟类的固定装置。有关定义和安装夹具的更多详细信息,请参阅 loaddata 文档。

    对测试用例中的每个测试重复此刷新/加载过程,因此您可以确定测试的结果不会受到另一个测试或测试执行顺序的影响。

    【讨论】:

    • 啊,好的!谢谢。应该自己找到这个:-)
    • 这在技术上不是正确的答案。如果运行多个涉及公共表的测试,有时并非所有记录都被删除。有时我不得不在测试后使用TransactionTestCase 正确清理。
    • 这似乎不适用于一个项目中的多个应用程序。有没有办法在测试结束后手动清除表格?
    猜你喜欢
    • 2011-01-29
    • 2010-11-02
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多