J'ai écrit un article détaillé à ce sujet il y a quelque temps :
Optimiser PostgreSQL pour des tests rapides
Vous pouvez le trouver informatif; il couvre les options permettant de faire fonctionner PostgreSQL sans durabilité et d'autres ajustements utiles pour exécuter des tests.
Vous n'avez pas réellement besoin d'une opération en mémoire. Si PostgreSQL est configuré pour ne pas vider les modifications sur le disque, il y aura en pratique peu de différence pour les bases de données qui tiennent dans la RAM, et pour les bases de données qui ne tiennent pas dans la RAM, il ne plantera pas.
Vous devez tester avec le même moteur de base de données que vous utilisez en production. Tester avec SQLite, Derby, H2, etc. puis déployer en direct sur PostgreSQL n'a pas beaucoup de sens... comme tout utilisateur Heroku/Rails peut vous le dire par expérience.