Откат Symfony2 Doctrine MongoDB

Я пытаюсь создать безопасный набор тестов с Symfony2, Doctrine и MongoDB.

Что мне нужно сделать, так это загрузить много приборов в начале теста и выгрузить их после его окончания. Я думал сделать это с транзакцией, но... я не смог найти документацию о том, как это сделать с Doctrine и Mongo!

Я нашел хорошую документациюв документах Doctrine о том, как выполнять транзакции с ORM, но не об ODM.

Итак, я просмотрел исходный код класса Connection.php , используемого Doctrine-Mongo, и не нашел beginTransaction, . ] commitи rollback, которые использует версия dbal.

Я был в неведении, затем я спросил себя: «Возможен ли вообще откат в MongoDB?», и ответ, если он был найден в FAQ по MongoDB, был следующим:

MongoDB не использует традиционную блокировку или сложные транзакции с откатом

:( Так что я думаю, поэтому в ODM нет beginTransactionили чего-то еще...

Но моя проблема остается: как я могу реализовать своего рода откат для моих тестов?

Единственная идея, которая у меня есть прямо сейчас, это вручную получить все идентификаторы документа, который я загружаю, а затем удалить их в tearDown(). отстой, не так ли?

Другие идеи??

РЕДАКТИРОВАТЬ: После моего первого комментария к этому вопросу о том, что я хочу иметь одну и ту же БД в тестировании и разработке, я подумал:почему бы не использовать отдельную тестовую базу данных, куда копируется база данных разработки при запуске тестов. , а что можно беззаботно уронить?

Может быть, это лучше? На самом деле это выглядит проще и безопаснее для меня. Что вы думаете, ребята?

Спасибо :)

5
задан AD7six 9 April 2012 в 09:28
поделиться