Installation 如何在Cumber E2E测试运行后高效地清理环境
我遇到的问题与E2E测试有关,E2E测试将为新的应用程序构建一直运行(甚至可能在CircleCi上每隔几个小时运行一次)。我有(将来还会有更多)包含大量设置的功能(每个场景都需要相同的设置才能运行)。例如,在场景运行之前(功能中的许多场景),需要一些用户、内容、配置等。在场景运行之后,最好的做法可能是删除/删除所有用户、内容等(或者至少在功能的所有场景运行之后)。我正在努力理解什么是最佳实践 如果我添加了一个后台,那么它将在每个场景之前运行,但随后我将从后台删除所有数据(我可以在最后一个场景步骤中添加一个清理功能,但如果我错了,这看起来很糟糕)。我可以添加钩子,在每个场景之后进行清理,并继续为新特性添加更多钩子(可能对场景使用标记来区分它们应该运行的对象) 有很多选择,但确实感觉效率很低。。。这些测试将在实时环境中运行(不是快速的集成或单元测试,而是E2E)。通常情况下,设置/后台运行所需的时间比一个场景要长得多,然后针对每个微小的场景反复运行。例如,必须在后台运行一组端点来创建用户、一些内容,在许多情况下(当我们还没有端点时)我将不得不通过UI编写一个自动旅程,以添加某些内容或更改特定设置,然后以相同的方式添加结束删除所有内容,并通过UI将设置更改为功能运行之前的状态。它感觉如此缓慢和低效 我唯一想到的另一件事(但不可能适用于所有情况)。就是创建一个巨大的hooks脚本,我将在整个套件运行之前添加所有必要的“东西”,在整个套件运行之后,我清理整个堆栈/实例数据库(或重置为某个预设的数据库快照),使其状态与整个套件运行之前相同 请帮助我了解在这种情况下的最佳做法是什么Installation 如何在Cumber E2E测试运行后高效地清理环境,installation,cucumber,environment,e2e,Installation,Cucumber,Environment,E2e,我遇到的问题与E2E测试有关,E2E测试将为新的应用程序构建一直运行(甚至可能在CircleCi上每隔几个小时运行一次)。我有(将来还会有更多)包含大量设置的功能(每个场景都需要相同的设置才能运行)。例如,在场景运行之前(功能中的许多场景),需要一些用户、内容、配置等。在场景运行之后,最好的做法可能是删除/删除所有用户、内容等(或者至少在功能的所有场景运行之后)。我正在努力理解什么是最佳实践 如果我添加了一个后台,那么它将在每个场景之前运行,但随后我将从后台删除所有数据(我可以在最后一个场景步骤
一般来说,Cuking的想法是在每个场景之后重置数据库。这是通过以下方式实现的:
- 在事务中运行场景(然后回滚)
- 在每个场景之后清空数据库
- 使用工厂或设备直接写入数据库
- 调用服务(与UI控制器使用的服务相同)来创建内容
- 几个使用浏览器逐步执行UI向导的场景(超慢)
- 许多场景具有多个实体的复杂设置