在 UI 次验收测试后清理添加到数据库中的记录

Cleaning up added records to the database after UI acceptance tests

我知道有很多关于测试完成后清理数据的问题。他们中的很多人都说模拟数据库以避免使用真实的数据库,然后在测试完成后清理它。我不确定这是否适用于我正在做的事情,所以就这样吧。

我将 SpecFlow 用于 .net,将 Selenium 用于 WebUI,将 NUnit 用于测试 运行ner。

该应用程序本身是一个大型多页 Web 应用程序。

SpecFlow 功能按页面功能分开,大多数(如果不是全部)页面都有 table 显示创建的记录。前任。我创建了一个新类别,页面在 table 中显示了添加的类别。为了能够一遍又一遍地 运行 这些测试,我需要从数据库中删除测试创建的所有添加记录,以便在重新运行测试时可以重新创建相同的类别。

我们在每个功能之后都有一个 运行 的骨架设置,该功能将传入存储过程以从数据库中删除那些添加的记录。由于存在删除测试环境中不同测试客户端的记录的风险,该想法遭到了很多反对。

那么,我的问题是,清理数据库的最佳做法是什么?

最好删除测试前后的测试数据运行s。这样,即使测试中途中止并且之后没有清理,数据也会被清理。

在 specflow 中,这可以通过使用 before scenario/after scenario/before feature/after 功能挂钩来实现。

如果可能的话,理想的解决方案是为每个测试创建一个新数据库,然后您可以删除整个数据库。这将允许测试 运行 并行。

如果您不能这样做,那么您需要某种方法来为每个测试唯一地标识测试数据。

令人担忧的是,您的问题暗示测试和实时数据在同一个数据库中