Вопрос
Есть ли у кого-нибудь опыт правильного копирования MSTest hibernate.cfg.xml в выходной каталог?Все мои MSTests завершаются ошибкой cannot find hibernate.cfg.xml (у меня установлено значение Копировать всегда), но мои тесты MbUnit проходят успешно.
Решение
Вы можете попробовать добавить атрибут DeploymentItemAttribute в один из своих тестов или отредактировать файл .testrunconfig и добавить его в список развертывания.
Другие советы
Отредактируйте localtestrun.testrunconfig (в папке "Элементы вашего решения").Выберите вариант развертывания и добавьте файл hibernate.cfg.xml в список дополнительных файлов для развертывания.Затем файл должен быть скопирован в выходной каталог, где запускается тест.
Столкнулся с тем же самым несколько недель назад - на самом деле это ошибка с MSTest -- Я полагаю, что это было исправлено недавним Выпуск пакета обновления (хотя там по-прежнему написано "Активный").Если нет, все, что мне нужно было сделать, это напрямую сослаться на мой hibernate.cfg.xml (неаккуратно, но работает для тестирования - это ссылка на hibernate.cfg.xml файл в моем проекте tests из папки "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 программная конфигурация.таким образом, вы можете написать свой собственный файл свойств / конфигурации и преобразовать его в конфигурации гибернации при запуске.
Мне нравится помечать мои конфигурационные файлы NHibernate как встроенные ресурсы и использовать конфигурацию.Перегрузка Configure(), которая считывает конфигурационные файлы из ресурсов сборки.