Playwright的文档说每个测试都应该是独立的,这样测试就可以并行运行,直觉上我同意这一点,但我在实践层面上遇到了问题。我第一次尝试隔离我的测试是在每次测试后截断表(清除所有记录),然后更新和删除测试添加记录以处理。
截断表可以测试“there are no records”状态,并防止添加用户时失败,因为该用户已经在上一次运行或上一次浏览器添加。
然而,当并行运行时,这些测试会很难发生冲突,当我不通过将每个浏览器设置为依赖于前一个浏览器来“链接”项目时,它们甚至会发生冲突(可能我应该将所有内容都设置为不并行,但我还没有采取这一步)。
我很难理解“隔离”测试意味着什么。如果我为beforeEach编写了一个用户,然后另一个测试通过截断表来结束,那么当测试实际运行并且刚刚创建的记录已经被截断时,我的更新测试当然会失败。当您需要测试一个绝对干净的状态,但也需要处理现有记录时,如何真正隔离测试,我完全不知所措。其他人是如何做到这一点的?
1条答案
按热度按时间eqqqjvef1#
串口模式
我将在该场景中使用串行模式,以将所有这些相互依赖的测试保存在同一个文件中,并按定义的顺序执行它们。
我认为没有像
best practice
这样的东西,而是good practices in an given context
。最终,我们需要在特定背景下找到正确的平衡。一般来说,我会争取独立测试,这样它们就不会影响其他测试,但是在这个场景中,将它们作为独立测试放在一个文件中是有意义的。
示例: