并行运行器中j_cleanup.feature执行时机及后置处理合理性问询
问题解答
结合你提供的并行运行器类截图,针对你的问题解答如下:
核心结论
如果你的j_cleanup.feature和tonyt包下的测试特征文件被纳入同一个并行运行器的执行范围,它会和主测试用例并行执行,这必然会引发你担心的问题:测试进程在插入数据,清理进程同时删除数据,导致数据不一致、测试失败甚至死锁。当前的设置完全不足以将其作为后置处理任务。
正确的清理方案
要实现所有测试完成后再执行清理,推荐以下几种方式:
- 使用Cucumber全局后置钩子:不需要单独的feature文件,直接在测试代码中实现
@AfterAll(Java环境)或对应语言的全局后置钩子逻辑,在所有并行测试进程全部完成后统一执行清理API调用。 - 拆分任务执行流程:将测试和清理拆分为两个独立执行步骤:先启动并行运行器执行
tonyt包下的所有测试用例,待整个并行测试任务结束后,再单独串行运行j_cleanup.feature文件。 - 用例级独立清理:在每个测试用例的
@After钩子中清理自身产生的数据,彻底避免跨进程的数据依赖冲突,这种方式更适配并行测试的场景。
内容的提问来源于stack exchange,提问作者Tony Thongsinthop
相关产品推荐
相关产品推荐

