Rollback Database after running Selenium GUI tests Rollback Database after running Selenium GUI tests selenium selenium

Rollback Database after running Selenium GUI tests


What you're after is called Fixture Teardown Patterns. Since you need to keep track of all resources that are created in a test and automatically destroy/free them during Teardown. I obviously don't know your framework, but for this case

rollback database after running a test

a good candidate is the Inline Teardown. It includes teardown logic at the end of the Test Method immediately after the result verification. Like so:

enter image description here


My guess is that you can't 'roll back' the database since web applications typically commit transactions between requests.

You'll need to implement your own custom rollback. Perhaps you could create a new user for each test and remove any changes made by this user after the test. Or maybe you want to implement the command pattern.

You might also find a cascading delete helpful


Lately I attended a talk about docker. The speaker was creating a docker container with a mysql database for demonstration purposes. I was immediately thinking about how to use this for integration testing as you can create a clean database instance with very little effort.

I was searching if there are already some best practices and found those to websites

I´m in the phase of evaluating on how to integrate this but I´m confident this is what I (and hopefully you) was looking for.Workflow would be:

  1. Test execution
  2. Start docker container from image with empty
  3. Fill database with master data (if necessary)
  4. Run test
  5. Throw docker container away