【问题标题】:Django - testing of different visual blocksDjango - 测试不同的视觉块
【发布时间】:2010-01-05 14:14:01
【问题描述】:

我将一些页面元素拆分为单独的可视块。

我目前正在集成设计器的前端 html,因此测试它们在浏览器中的显示方式(每个块)对我来说很重要。

我可以使用 django-testing 实现这一点的最简单方法是什么?

我知道我可以创建一个包含所有块的视图并通过斜纹或硒调用此页面。我在想必须有一个更简单的平台特定命令,我可以在测试中使用,比如gnome-open render_to_string(abcd.html,{})

让我想起了 Joel 的思想流派,即雇佣一个纪律严明的“测试员”,不介意一次又一次地测试这种无聊的东西;但我不一定接受。

另外,指定 django 使用 in-memory-sqlite-db 进行测试的最简单方法是什么,以便加快进程?

【问题讨论】:

  • 我对@9​​87654322@ 的使用有点困惑。为什么要让测试打开新的应用程序?它们不应该是自动化的和自包含的吗?
  • notnoop:我希望测试能够打开多个浏览器选项卡,每个选项卡一个块,这样我可以看到它们在设计 html 模板中按要求显示。

标签: django unit-testing testing


【解决方案1】:

在使用 sqlite 进行测试的问题上,您可以指定一个单独的设置模块(我们称之为 test_settings),它只定义数据库设置。然后像这样运行它:

manage.py test --settings=test_settings

在那个文件里放:

from settings import *
DATABASE_ENGINE = "sqlite3"

如果指定了 sqlite,默认情况下测试运行器应该使用内存数据库。

关于检查单个元素的输出,这取决于您要实现的目标。如果您的意思是您想手动查看浏览器中的某些内容以使其正常,那么我建议您编写一个管理命令来做到这一点。测试运行器更适合在代码中可以确定通过或失败的事情。如前所述,如果这是您的目标,然后输出到文件,然后编写浏览器脚本以打开包含目录中所有文件的选项卡(如果可能是个好主意)。您可能会发现 Watir 对此很有用,它是一个用于自动化 Web 浏览器的开源 (BSD) 库。

如果可以以编程方式检查您拥有的内容(一些 CSS 内容,与图像进行比较,在输出中查找字符串),那么您可能会发现我在使用 selenium 和 Python 测试 CSS 方面所做的一些工作很有用 (http://github.com/garethr/css-test)

【讨论】:

    【解决方案2】:

    也许将 render_to_string() 写入文件,然后以该文件作为参数启动浏览器(使用 subprocess.call 或类似的东西)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-11
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多