Specrun - 线程延迟

时间:2017-01-12 13:45:01

标签: specflow specrun

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

我的Default.srprofile部分内容如下:

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

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

是否有机会添加线程执行延迟?比线程要说的话应该在5s秒间隔或类似的东西开始?

2 个答案:

答案 0 :(得分:2)

没有延迟开始的选择,我不会接受这个想法。这只是一个快速解决方案。当后续测试同时执行时,您将再次收到此错误。

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

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

答案 1 :(得分:1)

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