Модульное тестирование RavenDB - PullRequest
       7

Модульное тестирование RavenDB

29 голосов
/ 23 сентября 2011

В моих модульных тестах я настраиваю каждый тест на наличие абсолютно пустой IDocumentSession.Я делаю это так:

[SetUp]
public void SetUp()
{
  _store = new EmbeddableDocumentStore
  {
     RunInMemory = true
  };

  _store.Initialize();

  Session = _store.OpenSession();
}

Но я думаю, что это может быть причиной того, что мои тесты немного медленные.Мне было интересно, есть ли простая команда для удаления всех документов из базы данных.

Что мне нужно, так это знать: могу ли я это сделать и улучшит ли это производительность.

Ответы [ 4 ]

25 голосов
/ 24 сентября 2011

Это рекомендуемый подход для модульного тестирования с ravendb Не рекомендуется для производства в основном работает в режиме памяти Если вы обнаружите, что это медленно, попробуйте профилировать и выяснить, что именно замедляет процесс

21 голосов
/ 23 сентября 2011

Попробуйте использовать RunInUnreliableYetFastModeThatIsNotSuitableForProduction = true.

        var _store = new EmbeddableDocumentStore()
        {
            Configuration =
                {
                    RunInUnreliableYetFastModeThatIsNotSuitableForProduction = true,
                    RunInMemory = true,
                }
        };
6 голосов
/ 23 сентября 2011

Дорогой вызов _store.Initialize() - вы заставляете RavenDb поддерживать новую базу данных каждый тест. В большинстве случаев будет работать одна база данных на один запуск набора тестов.

Другим вариантом будет использование природы или идентификаторов RavenDb для пространства имен ваших тестов. Это очень удобно, если реальная проблема заключается в повторяющихся ключевых ошибках и инженерных вещах, поэтому у вас нет грязной очистки.

3 голосов
/ 04 января 2013

Я знаю, что это старый вопрос, но в RavenDB 2.0 (еще не стабильной) существует Raven Test Helper, доступный в виде пакета Nuget, который действительно полезен, когда речь идет о модульном тесте RavenDB.1003 *http://ravendb.net/docs/samples/raven-tests/createraventests?version=2.0

http://nuget.org/packages/RavenDB.Tests.Helpers/2.0.2198-Unstable

...