【问题标题】:Test django project with native unittest lib使用本机 unittest lib 测试 django 项目
【发布时间】:2018-09-12 23:08:12
【问题描述】:

是否可以不使用 Django 提供的单元测试工具而使用原生 python unittest 库?

我知道对于简单的测试它工作得很好。但是当我将其他应用程序和模型纳入测试时,我会遇到各种异常,例如“应用程序尚未加载等等”。

那么有没有一种解决方法可以在大多数情况下使用 unittest 库测试 django 项目?

【问题讨论】:

  • 但是为什么要在不使用 Django 测试功能的情况下测试 Django 代码呢?我的意思是,它们的实施是为了为 Django 测试代码铺平道路。您是否检查过其他 Django 测试类选项,例如 TransactionTestCaseSimpleTestCase
  • 简单答案 - 使用 django 测试我无法测试单个测试,只能测试包含测试的类。使用 pycharm IDE 开发时就是这种情况。单元测试的集成更好。
  • 另外还有一些不方便的测试数据库创建,如果你想省略这个功能,你必须指定你自己的测试运行器。名单还在继续。

标签: python django python-3.x python-unittest django-unittest


【解决方案1】:

您可以在测试模块中手动初始化 Django,这意味着您可以与模型交互 - 例如:

import os
from unittest import TestCase

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'
import django
django.setup()

# Model imports, test code

您可能有这样做的理由,尽管 Jonatas CD 在他的评论中指出,Django 自己的测试类确实是最好的方法,因为它们提供了许多有用的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 2014-07-26
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    相关资源
    最近更新 更多