我使用Bitbucket管道运行其测试(使用jest)。有一个测试有时会失败,有时不会,我想修复它,但我无法真正检查我的解决方案是否有效。有人知道如何重现片状测试失败吗?
aurhwmvo1#
不管是哪种语言,不稳定的测试都是由测试运行环境中的意外更改引起的。如果您可以在本地孤立地重现故障,则很可能是由于测试引用了环境的非确定性部分,如系统时间、随机数或网络连接。如果您可以在本地重现失败,但不能孤立地重现失败,则很可能是一个测试将状态泄漏到全局环境中,从而导致失败的测试中断。而且,如果您不能在本地重现失败,无论顺序如何,您可能正在处理两个测试之间的竞争条件,这两个测试在并行执行时访问相同的共享全局状态。我写了一个更详细的回答类似的问题,here。
1条答案
按热度按时间aurhwmvo1#
不管是哪种语言,不稳定的测试都是由测试运行环境中的意外更改引起的。
如果您可以在本地孤立地重现故障,则很可能是由于测试引用了环境的非确定性部分,如系统时间、随机数或网络连接。
如果您可以在本地重现失败,但不能孤立地重现失败,则很可能是一个测试将状态泄漏到全局环境中,从而导致失败的测试中断。
而且,如果您不能在本地重现失败,无论顺序如何,您可能正在处理两个测试之间的竞争条件,这两个测试在并行执行时访问相同的共享全局状态。
我写了一个更详细的回答类似的问题,here。