Модульные тесты Lucene - PullRequest
       5

Модульные тесты Lucene

2 голосов
/ 25 марта 2012

Я бы хотел провести несколько юнит-тестов на основе lucene, но, честно говоря, понятия не имею, как это сделать. Я не могу понять самые основные задачи, такие как:

  1. Настройка фиктивного каталога с помощью MockDirectoryWrapper
  2. Расширение моего класса тестирования jUnit с помощью LuceneTestCase не позволяет выполнять какие-либо из моих тестов
  3. Я хочу смоделировать ошибки поврежденного файла, ошибки заблокированного каталога и т. Д., Но я запутался, как использовать MockDirectoryWrapper для таких действий.

Ресурс с некоторыми учебниками или примерами был бы великолепен. Похоже, что Google не находит ничего, связанного с модульным тестированием Lucene, и, хотя на сайте Lucene есть отличная документация, они ничего не предлагают в плане учебных пособий.

Обычно я использую RAMDirectory и внедряю его в свои классы lucene для выполнения модульных тестов по основным функциям, таким как добавление документа в индекс или удаление документа и т. Д., Что замечательно, но это не позволяет мне проверять ошибки такие как те, что я перечислил выше.

Я мог бы создать тестовый файл физического каталога, создать тестовый каталог, а затем удалить один из файлов, чтобы существенно его испортить, но есть ли способ сделать это как ложный, не создавая файл на диске?

1 Ответ

4 голосов
/ 25 марта 2012
  1. Простой пример теста: https://github.com/apache/lucene-solr/blob/master/lucene/core/src/test/org/apache/lucene/TestDemo.java

  2. Я не знаю, что вы имеете в виду под словом «тесты не запускаются»: но абсолютно важно, чтобы вы использовали точную версию junitчто задокументировано для работы с вашей версией:

Например, для 3.5:

Зависит от junit 4.7.x (не 4.6.x, не 4.8.x)

http://svn.apache.org/repos/asf/lucene/dev/branches/lucene_solr_3_5/lucene/README.txt

Junit иногда нарушает обратную совместимость, это не наша вина.

Что касается более сложных вещей, таких как симуляция ошибок, выпридется посмотреть на код или посмотреть аналогичные тесты в Lucene.Например, чтобы подделать ошибку переполнения диска, просто посмотрите на TestIndexWriterOnDiskFull, чтобы увидеть, как он это делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...