我正在尝试创建一组新的测试来测试我正在开发的旧网站。该站点在后端使用数据库。我计划使用 SpecFlow 和 Selenium,但是我对处理数据清理的最佳方法有点困惑。
目前,我有一个数据库备份,其中包含一组示例数据,我在每次测试运行之前还原这些数据。然而,这很麻烦,所以我只想在发布之前对关键测试运行执行此操作,并让持续集成运行在其间的同一数据库上运行。
目前我有大量的测试是这样的:
Secenario: Test Item Creation
Given I am logged in
When I create an item with a unique name
Then an item exists with the unique name
when 步骤使用 GUID 来确保名称是唯一的,然后 then 步骤可以通过模块变量访问它以检查它是否存在。
就像我说的,但是我有很多与此类似的测试,并且我在同一个数据库上多次运行它们,因此测试系统充满了降低搜索速度等的项目。
我的问题是处理这个问题的最佳方法是什么?我是否应该在测试中创建另一个步骤来再次删除该项目,如下所示:
Secenario: Test Item Creation
Given I am logged in
When I create an item with a unique name
Then an item exists with the unique name
Then delete the item with the unique name
或者我的测试框架应该能够以某种方式处理这个问题?如果是这样,人们会怎么做?鉴于 SpecFlow 步骤的全局性质,我想如果具有父子关系的多个项目可能会出现问题,那么以正确的顺序获取拆卸步骤。