Похоже, что вы не звоните Close на IndexWriter / Reader / Searchers, который вы используете при выполнении тестов. Если вы этого не сделаете и используете класс FSDirectory (который представляет файловую систему), то создаются файлы блокировки, которые препятствуют открытию индексов в каталогах.
Тем не менее, обязательно вызывайте метод Close для любых объектов, которые открывают его, когда тест завершен. Убедитесь, что вы используете блок try / finally, чтобы обеспечить закрытие объектов.
Лично я создал метод расширения, который берет объект и возвращает реализацию IDisposable, которая будет вызывать Close при вызове Dispose, позволяя использовать его при использовании операторов (я использую отражение для типа, чтобы получить метод Close затем я генерирую лямбда-выражение, которое вызывается в методе Dispose).
Кроме того, если вы запускаете тестовый жгут и открываете и закрываете индексы в своих текстовых приборах, вы должны либо убедиться, что:
- Тесты, которые обращаются к индексам, запускаются синхронно, поэтому они не пытаются открывать заблокированные каталоги
OR
- Наличие одного класса тестирования для всех тестов, связанных с поиском, и управление открытием и закрытием индексов в любых механизмах настройки и разрыва, существующих для вашего тестового набора. Вы также должны выполнить заполнение вашего индекса в настройках (и не делать его одним из тестовых случаев, иначе у вас будут проблемы с синхронизацией).