Модульное тестирование .NET Core 2.1 с помощью NHibernate и InMemory SQLite - PullRequest
0 голосов
/ 02 сентября 2018

Я получаю следующую ошибку при запуске моих тестов XUnit

FluentNHibernate.Cfg.FluentConfigurationException: недопустимая или неполная конфигурация использовалась при создании SessionFactory. Проверьте коллекцию PotentialReasons и InnerException для более подробной информации.

NHibernate.HibernateException: Не удалось создать драйвер из NHibernate.Driver.SQLite20Driver, NHibernate, Версия = 5.1.0.0, Culture = нейтральный, 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 Ответ

0 голосов
/ 03 сентября 2018

Мне удалось решить эту проблему, добавив System.Data.SQLite.dll (предварительно скомпилированный двоичный файл для .netcore 2.0) и SQLite.Interop.dll в каталог моего проекта и скопировав файлы в выходной каталог с помощью событие после сборки.

XCOPY $(ProjectDir)\Lib\* $(TargetDir) /Y

Я удивлен, что простого добавления пакета nuget System.Data.SQLite оказалось недостаточно.

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

...