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 поддерживает программную настройку. так что вы можете написать свой собственный файл свойств / конфигурации и проанализировать его в конфигурации гибернации при запуске.

Другие вопросы по тегам