代码之家  ›  专栏  ›  技术社区  ›  Srikar Appalaraju Tonetel

测试Django代码的小片段

  •  0
  • Srikar Appalaraju Tonetel  · 技术社区  · 14 年前

    我还处于Django应用程序的开发阶段。甚至在编写views.py之前,我都会测试它们,看看我的模型是否定义正确。我在终端通过调用

    python manage.py shell

    但我经常犯语法错误,提示我中止shell ctrl-D &重新键入所有内容(amp;R)。这个过程要持续很久。如果我能把这些都写在一个文件里只是为了我的试验,那就更好了&如果一切都可以复制到 views.py .

    这个过程是什么?它是否和创建 trial.py 在我的应用程序目录中。我不需要导入Django env吗?最好的方法是什么?

    6 回复  |  直到 14 年前
        1
  •  2
  •   Vinay Sajip    14 年前

    一定要为简单的实验创建一个trial.py,然后

    python manage.py shell
    

    你可以的

    >>> import trial
    

    然后在试用中直接从提示符处调用代码,例如。

    trial.myfunc()
    

    如果您需要更改内容,只需保存已更改的trial.py并执行

    reload(trial)
    

    当然,您可能需要重新创建交互式会话中的任何现有对象,以便利用您的更改。

    这应该被看作是对编写单元测试的补充(根据Jani的回答),但我确实发现这种方法对于使用迭代求精进行尝试非常有用。

        2
  •  5
  •   Jani Hartikainen    14 年前

    写单元测试怎么样?您可以用一个命令轻松地执行它们。你可以从阅读 django manual chapter on testing

        3
  •  1
  •   ffriend    14 年前

    在Django项目目录中创建测试文件,并将项目路径添加到env变量:

    import sys
    sys.path.append(os.path.realpath(os.path.dirname(__file__)))
    

    之后,您将能够从项目中导入任何模块(例如models.py中的模型或views.py中的函数),并使用您喜爱的IDE及其编辑器和shell。

        4
  •  1
  •   Tomasz Zieliński    14 年前

    对于更简单的情况,您可以使用 django-extensions 包含 shell_plus 类似于标准的管理命令 shell 命令但预加载所有模型。

        5
  •  1
  •   Ignacio Vazquez-Abrams    14 年前
        6
  •  0
  •   newlife    14 年前

    我以前也遇到过这个问题,

    可能你可以安装ipython,它有一个神奇的函数,叫做:

    %保存。

    这将保存您输入到文件中的内容。

    而且ipython是一个非常迷人的工具,它可以完美地利用标准python提示符的功能。。它也有其他奇妙的东西!

    在django中,如果已经安装了ipython,那么在输入python manage.py shell时,

    它将直接调用ipython。