JS-TOD:检测 Jest 中顺序相关的不稳定测试
软件工程
2025-09-03 v1
摘要
我们提出了 JS-TOD(JavaScript Test Order-dependency Detector),一个能够提取、重排和重新运行 Jest 测试以揭示可能的顺序相关测试不稳定性的工具。测试顺序依赖性是导致测试不稳定性的一个主要原因。理想情况下,每个测试都应在隔离状态下运行,无论其执行顺序如何,都应产生一致结果。然而,实际情况中,测试结果可能会因其执行顺序而有所不同。JS-TOD 采用系统化方法随机化测试、测试套件和 describe 块。该工具高度可定制,可以设置所需的顺序数和重新运行次数(默认设置为每个测试和测试套件 10 次随机排列和 10 次重新运行)。我们的评估使用 JS-TOD 揭示了两种导致测试顺序依赖性不稳定性的主要原因:共享文件和测试之间的共享模拟状态。
引用
@article{arxiv.2509.00466,
title = {JS-TOD: Detecting Order-Dependent Flaky Tests in Jest},
author = {Negar Hashemi and Amjed Tahir and Shawn Rasheed and August Shi and Rachel Blagojevic},
journal= {arXiv preprint arXiv:2509.00466},
year = {2025}
}