我有一个用c#编写的测试,我使用的是SpecRun版本1.5.2。
我的Default.srprofile的一部分看起来如下:
<Execution stopAfterFailures="20" testThreadCount="5" testSchedulingMode="Sequential" retryFor="Failing" retryCount="3" />有一组测试正在使用来自db的一些数据,所以测试首先创建该数据。不幸的是,当5个线程并行运行时,我偶尔会得到一个sql deadlock error,这很好,因为这些线程试图同时写入数据。
是否有机会增加线程执行的延迟?比线程更需要说的东西应该在5秒间隔内开始,还是类似的?
发布于 2017-01-13 09:30:48
推迟启动是没有选择的,我也不会同意这个想法。这只是一个快速的解决办法。当随后的测试同时执行时,您将再次得到此错误。
我想到了解决你的问题的两个选择:
全面披露:我是SpecFlow和SpecFlow+的开发人员之一。
发布于 2021-02-18 09:51:04
除了前面的答案,如果您继续捕获死锁和重试,我还会在尝试之间添加一些随机的时间间隔,这样您就不会在每次重试迭代中出现相同的死锁。对于API/DB并发请求,我们这样做是很好的,因为多个数据库/环境需要更多的资源和金钱。
https://stackoverflow.com/questions/41614797
复制相似问题