SO Folk,
Anyone around these parts know if you can keep Cucumber from cleansing test data at the end of a run? I've a few tests that continue to fail and I'd like to have a look at the data backing thos开发者_StackOverflow社区e tests...
Any ideas?
Thanks! Cory Wilkerson
In your features/support/env.rb
file there are some comments about this. If you don't want to roll-back the database after a particular scenario has finished then add the @no-txn
tag to the scenario. You will then need to clean the db yourself. The easiest way is to do a db:test:clone
.
The best way to troubleshoot your issues would be to run the problem scenarios individually and see how each one is failing. If you do a run and have scenarios leaving data in the DB then you are going to cause yourself all kinds of problems. Once you have fixed the scenario then do a db:test:clone
before you work on the next one or do a run.
Here's the definitino for the debug step I mentioned in the comment to Sam Livingston-Gray:
When /I want to debug/i do
debugger
true # never put debugger at the end of a method
end
A bit hackish, but as a last resort, maybe you could add a Then block called "Then pause tests" that either halts, or goes into a polling loop and doesn't continue until it sees some condition change (e.g., you touch /features/continue.txt)?
Stick "Then pause tests" in the test you want to look at, and you've got a way to inspect the database before it continues. Of course, this doesn't work if Cucumber uses database transactions...
(Sorry for the vagueness; it's been a while since I last used Cucumber.)
精彩评论