Модульное тестирование.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 было недостаточно.

Надеюсь, что это помогает кому-то с подобной проблемой.

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