Specrun - 线程延迟

Specrun - delay of threads

我有一个用 c# 编写的测试,我正在使用 SpecRun 版本 1.5.2。

我的部分Default.srprofile如下所示:

<Execution stopAfterFailures="20" testThreadCount="5" testSchedulingMode="Sequential" retryFor="Failing" retryCount="3" />

有一堆测试正在使用数据库中的一些数据,因此测试首先创建该数据。不幸的是,当 5 个线程 运行 并行时,我偶尔会得到 sql deadlock error 这很好,因为这些线程试图同时写入数据。

是否有机会添加线程执行延迟?有什么比线程应该在 5s 秒间隔内启动或类似的东西要说的吗?

没有延迟开始的选项,我不会同意这个想法。这只是一个快速修复。当后面的测试同时执行时,你会再次得到这个错误。

我想到了 2 个解决问题的选项:


完全披露:我是 SpecFlow 和 SpecFlow+ 的开发者之一。

除了之前的答案之外,如果您要捕捉死锁并重试,我还会在尝试之间添加一些随机时间间隔,这样您就不会在每次重试迭代中遇到相同的死锁。我们为 API/DB 个并发请求执行此操作并且对我们来说效果很好,因为多个 databases/environments 将需要更多的资源和资金。