我想创建功能测试来覆盖我的Django项目。它是一个多页表单,接受每个页面上的输入。先前页面上的输入会更改当前页面的内容/选项。目前正在使用Splinter和PhantomJS进行测试。我看到了两种主要的设置方法。
对于每个页面,使用存储的数据创建该页面的一个实例,并将Splinter指向该实例
优点
- 允许对应用程序中的任何页面进行随机访问测试
- 可以重用单元测试定义来填充这些合成页面
不利因素
- 需要设置Splinter可以指向的某种后端(目前我不知道这将如何工作,但似乎很耗时)
构建测试,以便按顺序进行,第1页的测试内容传递到第2页
优点
- 似乎应该开箱即用
不利因素
- 不允许以任意顺序运行测试/一次只运行一个
- 可能需要更长的时间
- 早期页面上的错误将影响后续页面
我已经找到了许多关于如何在小规模上进行功能测试的教程(单个页面/功能等),但我正在努力弄清楚如何在大型项目中构建它是否有一种公认的方法或最佳实践。是其中之一吗?我还错过了什么?
我要找的是固定装置(https://docs.djangoproject.com/en/1.11/ref/django-admin/#django-admin-dumppdatea)。如果你试图在整个项目的测试之间传递浏览器状态,事情就会变得太复杂。易于获取数据库状态,易于加载。