2009-12-04 141 views
6

SO民俗,黄瓜清理

围绕这些部件任何人都知道,如果你可以在运行结束清洗的测试数据要保持冷静?我有一些测试继续失败,我想看看支持这些测试的数据......

任何想法?

谢谢! 科里威尔克森

+1

您可能需要解释一下与实例。你想做什么? “清洁”是什么意思?你可以单独运行测试并获得好的结果吗?整个套件是否失败? – bojo 2009-12-04 16:05:17

+0

对不起 - 以为这很清楚。我对黄瓜本身没有问题,完全没有问题。测试正在按照我的预期运行。我只是好奇如果我可以让Cucumber截断/清除在本地数据库的Cucumber测试期间创建的测试数据,这样我可以更好地调查测试失败的原因(不是Framework/Cucumber失败)。 感谢downvote。 – Cory 2009-12-04 16:22:51

回答

5

在你features/support/env.rb文件中有一些有关评论这个。如果您不想在特定方案完成后回滚数据库,请将@no-txn标记添加到方案中。您将需要自己清理数据库。最简单的方法是做一个db:test:clone

解决问题的最佳方法是单独运行问题场景并查看每个问题情况如何失败。如果你做了一个运行,并且有在数据库中留下数据的场景,那么你将会引发各种问题。解决方案后,请在执行下一步之前执行db:test:clone或执行一次运行。

+0

谢谢约瑟夫 - 正是我所期待的。 – Cory 2009-12-08 14:57:16

1

有点骇人,但作为最后的手段,也许你可以添加一个名为“然后暂停测试”,阻止,或进入轮询循环,并不会继续下去,直到它看到一些条件更改(例如,您触摸/features/continue.txt)?

在您想要查看的测试中粘贴“然后暂停测试”,并且您有办法在数据库继续之前检查数据库。当然,如果黄瓜使用数据库事务,这并不工作...

(很抱歉的模糊性;它已经有一段时间,因为我最后一次使用黄瓜。)

+0

或“然后我想调试” – 2011-02-10 16:57:37

3

下面是调试步骤I,山姆利文斯灰色的评论中提到的definitino:

When /I want to debug/i do 
    debugger 
    true # never put debugger at the end of a method 
end