MSTest и NHibernate
У кого-нибудь есть опыт получения MSTest для правильного копирования hibernate.cfg.xml в выходной каталог? Все мои MSTests терпят неудачу с не может найти ошибку hibernate.cfg.xml (у меня есть это Всегда Копировать), но мои тесты MBUnit проходят.
5 ответов
Вы можете попробовать добавить атрибут DeploymentItemAttribute в один из ваших тестов или отредактировать файл.testrunconfig и добавить его в список развертывания.
Отредактируйте localtestrun.testrunconfig (в папке элементов вашего решения). Выберите параметр развертывания и добавьте файл hibernate.cfg.xml в список дополнительных файлов для развертывания. Затем файл должен быть скопирован в выходной каталог, где запускается тест.
Столкнулся с тем же самым несколько недель назад - на самом деле это ошибка в MSTest - я считаю, что это было исправлено в недавнем выпуске пакета обновления (хотя он по-прежнему говорит "Active"). Если нет, все, что мне нужно было сделать, - это напрямую обратиться к моему hibernate.cfg.xml (небрежно, но работает для тестирования - это ссылка на файл hibernate.cfg.xml в моем проекте тестов из папки "TestResults"):
try
{
sessionFactory = new Configuration()
.Configure()
.BuildSessionFactory();
}
// Assume we are in "MSTest mode"
catch (Exception)
{
sessionFactory = new Configuration()
.Configure(@"..\..\..\Program.Tests\" + @"\hibernate.cfg.xml")
.BuildSessionFactory();
}
Мне нравится отмечать мои файлы конфигурации NHibernate как встроенные ресурсы и использовать перегрузку Configuration.Configure(), которая считывает файлы конфигурации из ресурсов сборки.
Обходной путь, а не ответ: NHibernate поддерживает программную настройку. так что вы можете написать свой собственный файл свойств / конфигурации и проанализировать его в конфигурации гибернации при запуске.