代码之家  ›  专栏  ›  技术社区  ›  lprsd

Django-不同视觉块的测试

  •  2
  • lprsd  · 技术社区  · 15 年前

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

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

    使用django测试实现这一点最简单的方法是什么?

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

    这让我想起乔尔的思想学校,雇佣一个训练有素的“测试人员”,不介意这种无聊的东西一次又一次地测试它;但我不一定接受它。

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

    2 回复  |  直到 14 年前
        1
  •  0
  •   Garethr    15 年前

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

    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
  •  0
  •   Ofri Raviv    15 年前

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