如何构建Django项目的功能测试

如何构建Django项目的功能测试,django,testing,functional-testing,splinter,Django,Testing,Functional Testing,Splinter,我想创建功能测试来涵盖我的Django项目。它是一个多页表单,在每个页面上接受输入。以前页面上的输入会更改当前页面的内容/选项。该测试目前使用Splinter和PhantomJS进行设置。我认为有两种主要的方法来设置这个 对于每个页面,使用存储的数据创建该页面的实例,并将Splinter指向该实例 好处 允许对应用程序中的任何页面进行随机访问测试 可以重用单元测试定义来填充这些合成页面 缺点 需要设置Splinter可以指向的某种后端(此时我不知道这将如何工作,但似乎很耗时) 将第1页的

我想创建功能测试来涵盖我的Django项目。它是一个多页表单,在每个页面上接受输入。以前页面上的输入会更改当前页面的内容/选项。该测试目前使用Splinter和PhantomJS进行设置。我认为有两种主要的方法来设置这个

对于每个页面,使用存储的数据创建该页面的实例,并将Splinter指向该实例

好处

  • 允许对应用程序中的任何页面进行随机访问测试
  • 可以重用单元测试定义来填充这些合成页面
缺点

  • 需要设置Splinter可以指向的某种后端(此时我不知道这将如何工作,但似乎很耗时)
将第1页的测试内容传递到第2页,按顺序进行测试

好处

  • 看起来应该是开箱即用
缺点

  • 不允许以任意顺序/一次仅运行一个测试
  • 可能需要更长的时间运行
  • 早期页面上的错误将影响后续页面

我已经找到了许多关于如何在小规模(单个页面/功能等)上进行功能测试的教程,但我试图找出在如何在大型项目上构建功能测试方面是否有一种公认的方法或最佳实践。这是其中之一吗?我还错过了什么?

我要找的是固定装置()。如果您试图在整个项目的测试之间传递浏览器状态,事情就变得太复杂了。易于抓取DB状态,易于加载