#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-кода. Надеюсь, это поможет, Филип