Я использую RavenDB в режиме In-Memory для модульного тестирования. Мои запросы поддерживаются статическими индексами. Я не использую API WaitForNonStaleResults()
(и не хочу).Как следует обрабатывать индексы во время тестирования?
Типичный рабочий процесс для теста:
- Initialise RavenDB в режиме В-памяти
- Интегрировать индексы с использованием
IndexCreation.CreateIndexes(Assembly, IDocumentStore)
- тест Вставка данных (для проверки поведение запроса)
- Выполнить запрос
- Проверка вывода запроса
Я заметил, что шаги 1-3 происходят так быстро, что статические индексы не успевают обновиться до шага 4 - поэтому индексы устарели.
Я создал для этого быстрое обходное решение. После шага 3 я выполняю:
while (documentStore.DocumentDatabase.Statistics.StaleIndexes.Length != 0)
Thread.Sleep(10);
Это кажется громоздким. Что я хотел бы знать:
- Нормально ли для индексов быть устаревшими при запуске RavenDB в режиме «Память»?
- Есть ли лучший способ избежать устаревших индексов во время тестирования?
@MattWarren Спасибо, Мэтт. Полезно знать. –
Подход Listener больше не действует с текущими сборками RavenDB. – nathanchere
@FerretallicA Я проверю это снова с помощью последней сборки. –