Использование unitils / dbMaintain для обслуживания базы данных, как исключить запуск сценариев?

#junit #integration-testing #unitils

#junit #интеграция-тестирование #unitils

Вопрос:

Я использую unitils (и его модуль dbMaintain) для поддержания состояния моей локальной базы данных.

dbMaintain имеет возможность исключать / включать скрипты на основе квалификатора. Смотрите http://www.dbmaintain.org/tutorial.html#Qualifier_inclusion__exclusion.

В моем проекте исключения / включения не работают при запуске из теста Unitils с UnitilsJUnit4TestClassRunner .

Моя иерархия скриптов:

 unitils/ 
    01_create/ <lots of scripts here> 
    02_lkups/ <lots of scripts here> 
    03_#testdata/01_#testdata_master/05_#testdata_master_rate_offer.sql 
  

Мой файл unitils.properties содержит:

 updateDataBaseSchema.enabled=true
dbMaintainer.script.locations=unitils
dbMaintainer.qualifiers=testdata 
dbMaintainer.excludedQualifiers=testdata 
  

Я бы ожидал, что 05_#testdata_master_rate_offer.sql будет исключен. Но он выполняется.

Заранее спасибо за любую помощь.

Ответ №1:

Ответ одного из разработчиков unitils на форумах unitils здесь:http://sourceforge.net/projects/unitils/forums/forum/570578/topic/4546980

Квалификаторы являются особенностью dbmaintain. Unitils 3.1по-прежнему содержит свой собственный dbmaintainer, который все еще существует до разделения dbmaintain. В Unitils 4.0 этот модуль заменен зависимостью от dbmaintain, но эта версия еще не выпущена. Я бы посоветовал, пока не выйдет 4.0, вызывать dbmaintain непосредственно из вашего Java-кода. Надеюсь, это поможет, Филип