【发布时间】:2015-03-06 14:36:01
【问题描述】:
我正在尝试并行运行我的 Rspec 测试,但这样做会导致数据冲突,即我有一个 delete_all 方法可以让我在每次测试运行时都清零,这会导致并行运行的测试丢失他们创建的数据。解决这个问题的理想方法是什么?
【问题讨论】:
-
找到一种不需要delete_all的方法。为什么你认为你需要它?
-
当使用
page.find时,如果我没有从之前的测试运行中删除该元素,则会导致结果不明确。 @TarynEast -
你不应该需要从以前的测试运行中删除东西......测试数据库的设置方式是,除非你已经对设置进行了调整 - 它应该在之后自行删除每次测试运行。
-
您如何并行运行测试。并行测试应该有自己的数据库,否则,你会得到大量的数据冲突。像 github.com/grosser/parallel_tests 这样的 Gem 正是这样做的,因此请确保您正在这样做或使用其中一种预先构建的 gem。