Django测试技巧

时间:2010-12-15 00:38:20

标签: python django unit-testing testing django-testing

本着这个question的精神,我想知道是否有任何关于创建一个有用的“完整”测试套件的提示(测试套件可以“完整”吗?)用于Django webapp

我的情况:我已经淘汰了原型,现在正在努力添加一些回归测试。我个人使用django-webtest进行大多数测试,并使用Django test client进行一些网址测试。

我对我的测试套件感到不舒服。我远非测试专家,所以试图改善这一目标。任何提示 - 无论是否适用于我的情况 - 都将不胜感激。

2 个答案:

答案 0 :(得分:14)

我建议阅读Django 1.1 Testing and Debugging by Karen M. Tracey。前五章涵盖了Django的测试。具体来说,您应该查看第5章,其中讨论了集成其他测试工具。以下是第5章的内容摘录:

  

在本章中,我们:

     
      
  • 了解Django为添加测试功能提供的钩子
  •   
  • 看了一个如何使用这些钩子的例子,特别是在添加代码覆盖率报告的情况下
  •   
  • 还探讨了将twill测试工具的使用集成到我们的Django测试用例中时不必使用这些钩子的示例
  •   

以下是Karen Tracey在她的书第5章中讨论的一些工具的链接:

莴苣

您可能还想查看Lettuce。来自网站:

  

生菜是一种基于黄瓜的非常简单的BDD工具。

The Lettuce文档还有一个关于integrating Lettuce with Django的部分。

答案 1 :(得分:3)

测试提供(至少)4个问题的答案。

  1. 我的实施是否正确?该应用程序是否与记录的或至少是心理图像相匹配。

  2. 我的最新更改是否破坏了什么?

  3. 我的应用是否安全?来自无辜的用户和狡猾的人。

  4. 我的应用程序的性能是否足够?

  5. 对于#1,每个“功能”至少需要进行一次测试,主要功能可能需要多次测试。 如果您既是开发人员又是测试开发人员,那么很容易在此处做出遗漏错误。

    对于#2开始时,学习编写测试套件以及代码(并忠实地运行它)是关键。

    对于#3,确保在正常程序引导操作之外访问的URL在权限方面表现正常。您可能不希望一个用户能够修改甚至是其他用户的信息,但是如果他们只能输入../user/505并获得可能存在问题的所有内容。我相信还有很多其他的东西需要在这里测试,所以其他人请来这里。

    测试具有大量流量的应用的性能和扩展稳健性  不是我所知道的。

    查看Django本身的测试用例,可以了解应该测试的内容的粒度。Django trunk tests

    Django docs有一篇关于测试的好文章:搜索文档进行测试。