Question

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 those tests...

Any ideas?

Thanks! Cory Wilkerson

Was it helpful?

Solution

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.

OTHER TIPS

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.)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top