我遇到的问题与 E2E 测试有关,它将一直运行以构建新的应用程序(甚至可能在 CircleCi 上每隔几个小时运行一次)。我有(并且将来会有更多)包含很多设置的功能(每个场景都需要相同的设置才能运行)。例如,在场景运行之前(功能中有很多)需要一些用户、内容、配置等。在场景运行之后,最好的做法可能是删除/删除所有用户、内容等(或至少在所有场景之后)已为该功能运行)。我正在努力理解什么是最佳实践。
如果我添加一个背景,那么它将在每个场景之前运行,但是我会从背景中删除所有这些数据(我可以在最后一个场景步骤中添加一个清理功能,但如果我错了,这似乎很糟糕,正确)。我可以添加将在每个场景之后清理的钩子,并继续为新功能添加更多钩子(可能使用场景标签来区分它们应该运行的场景)。
有一些选项,但感觉效率太低了……这些测试将在实时环境中运行(不是快速的集成或单元测试,而是 E2E)。很多时候,设置/背景将花费比一个场景更多的时间来运行,然后它会为每个微小的场景一遍又一遍地运行。例如,必须在后台运行一堆端点来创建用户、一些内容,并且在许多情况下(当我们还没有端点时)我将不得不编写一个通过 UI 的自动化旅程来添加一些东西或更改特定设置,然后以同样的方式添加结束删除所有内容,并通过 UI 将设置更改为功能运行之前的状态。感觉好慢,效率低。。。
我想到的唯一另一件事(但可能不适用于所有情况)。是创建一个巨大的钩子脚本,我将在整个套件运行之前添加所有必要的“东西”,在整个运行之后我清理整个堆栈/实例数据库(或重置为一些预设的数据库快照)以使其状态和整个套件运行之前一样。
请帮助我了解在这种情况下的最佳做法是什么
问候