【问题标题】:How can I avoid multiple creation of admins in functional tests in Django 1.6?如何避免在 Django 1.6 的功能测试中创建多个管理员?
【发布时间】:2014-10-31 13:48:01
【问题描述】:

我对正在开发的应用程序进行了一些功能测试。对于每个测试,我都需要创建一个管理员用户,然后还需要创建一些应用程序用户的个人资料。如果您只运行一个测试,创建管理员和用户配置文件不会花费太长时间,但是当我运行所有测试时它会累加,这是每次我们添加新功能时都需要的。

我有一个包含以下内容的 Python 文件:

import unittest, sys

from django.conf import settings

print("DEV_ENV: "+str(settings.DEV_ENV))
print("TEST_ENV: "+str(settings.TEST_ENV))
print("PROD_ENV: "+str(settings.PROD_ENV))

from case1test import Case1Test
from case2test import Case2Test
from case3test import Case3Test
from case4test import Case4Test


if __name__ == '__main__':
    unittest.main()

我想为所有功能测试创建一次管理员和用户配置文件。有人可以给我一些关于如何进行的建议吗?该应用是使用 Django 1.6 开发的,因此 --keepdb 选项不可用。

【问题讨论】:

  • 您使用什么特定方法来确定 Django 测试运行器为设置测试所做的所有事情中,用户配置文件的创建占用了大部分设置时间?

标签: python django testing functional-testing


【解决方案1】:

他们有很多方法可以做到这一点:

  • fixtures:
    yourapp/fixtures/ 中添加一个fixture 文件,我建议您使用./manage.py dumpdata yourapp.yourmodel --pks=<instance_id> 转储一个新的。
    只需在测试中加载所需的fixture。
    很少的夹具加载速度很快,但如果您处理更大的尺寸,您可以使用 Django-nose 和 hisFast Fixtures feature

  • Factory Boy:
    用于构建具有 (±) 小声明的对象/模型集的库

【讨论】:

    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 2011-03-30
    • 1970-01-01
    相关资源
    最近更新 更多