Модульное тестирование.NET Core 2.1 с помощью NHibernate и InMemory SQLite
Я получаю следующую ошибку при запуске моих тестов XUnit
FluentNHibernate.Cfg.FluentConfigurationException: неверная или неполная конфигурация использовалась при создании SessionFactory. Проверьте коллекцию PotentialReasons и InnerException для более подробной информации.
NHibernate.HibernateException: не удалось создать драйвер из NHibernate.Driver.SQLite20Driver, NHibernate, версия =5.1.0.0, культура = нейтральная, PublicKeyToken=aa95f207798dfdb4. System.Reflection.TargetInvocationException: исключение было сгенерировано целью вызова. NHibernate.HibernateException: не удалось найти реализацию DbCommand и DbConnection в сборке System.Data.SQLite. Убедитесь, что сборка System.Data.SQLite находится в каталоге приложения или в глобальном кэше сборок. Если сборка находится в GAC, используйте элемент в файле конфигурации приложения, чтобы указать полное имя сборки.
Я ссылаюсь на FluentHNHibernate v2.1.2, NHibernate 5.1.3, System.Data.SQLite.Core v1.0.109.1 как на пакеты Nuget и работаю с Visual Studio 2015.
Все другие решения, которые я видел здесь, были исправлены с добавлением System.Data.SQLite, но я не смог заставить это работать.
Я также попытался установить тестовый проект только на Build x64, но это не сработало.
Спасибо за вашу помощь в этом вопросе.
1 ответ
Я смог решить эту проблему, добавив System.Data.SQLite.dll (предварительно исполняемый двоичный файл для.netcore 2.0) и SQLite.Interop.dll в каталог моего проекта и скопировав файлы в выходной каталог с последующим построить событие.
XCOPY $(ProjectDir)\Lib\* $(TargetDir) /Y
Я удивлен, что простого добавления пакета nuget System.Data.SQLite было недостаточно.
Надеюсь, что это помогает кому-то с подобной проблемой.