2011-03-08 89 views
0

我有很多黄瓜功能文件,每个文件都包含很多场景。红宝石黄瓜测试实践

当一起运行时,其中一些失败。 当我运行每个单独的测试文件时,它们都会通过。 我认为我的数据库在每个场景之后都没有正确清理。

什么是正确的过程来确定是什么导致此行为?

+0

该订单出现在'功能/支持/ env.rb'?:黄瓜::滑轨:: World.use_transactional_fixtures =真 – zetetic 2011-03-08 20:13:35

+0

@zetetic,是的,它似乎 – astropanic 2011-03-09 09:40:06

回答

0

这发生在我身上,原因是不同的原因和不同的时间。

有时它的一个存根或模拟是在一个情况下调用另一个情况,但只有当它们都运行时(每个都很好)。

我已经能够解决这些问题的唯一方法是在运行足够的测试以获得失败时进行调试。您可以将调试器行放入step_definitions中,或者将其调用为一个步骤(当我调用调试器时),并将其与步骤定义相匹配,并将“调试器”作为ruby代码进行说明。

2

通过它的声音,你的测试彼此依赖。你应该试着让每个单独的测试去完成那个单独的测试运行所需的设置。

设置的部分应该在“给定”部分功能期间完成。 个人而言,为了避免功能变得冗长,并使它们与写入的业务语言保持接近,我有时会添加执行设置所需的其他步骤,并根据功能文件中的步骤调用它们。 如果这让你感兴趣

+0

我的目的是写独立的测试 – astropanic 2011-03-09 09:38:11