S#arp Lite - NHibernate Initializer не находит именованную строку подключения

Я пытаюсь использовать S#arp Lite. Я следовал инструкциям здесь - https://github.com/codai/Sharp-Lite/blob/master/README.txt

Когда я впервые пытаюсь запустить MappingIntegrationTests в NUnit я получаю следующие ошибки:

MySolution.Tests.NHibernateProvider.MappingIntegrationTests.CanConfirmDatabaseMatchesMappings:
SetUp : NHibernate.HibernateException : Could not find named connection string MySolutionConnectionString
MySolution.Tests.NHibernateProvider.MappingIntegrationTests.CanConfirmDatabaseMatchesMappings:
SetUp : NHibernate.HibernateException : Could not find named connection string MySolutionConnectionString

NUnit указывает, что вышеуказанные ошибки происходят от второй строки SetUp метод в MappingIntegrationTests,

[SetUp]
public virtual void SetUp() {
  _configuration = NHibernateInitializer.Initialize();
  _sessionFactory = _configuration.BuildSessionFactory();
}

Initialize метод моего NHibernateInitializer учебный класс,

public static Configuration Initialize() {
  Configuration configuration = new Configuration();
  configuration.Proxy(p => p.ProxyFactoryFactory<DefaultProxyFactoryFactory>())
               .DataBaseIntegration(db => {
                   db.ConnectionStringName = "MySolutionConnectionString";
                   db.Dialect<MsSql2008Dialect>();
               })
               .AddAssembly(typeof(ActionConfirmation<>).Assembly)
               .CurrentSessionContext<LazySessionContext>();
  ConventionModelMapper mapper = new ConventionModelMapper();
  mapper.WithConventions(configuration);
  return configuration;
}

И App.Config файл из MySolution.Tests проект,

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="MySolutionConnectionString" connectionString="data source=.\SQLEXPRESS;Initial Catalog=MySolutionDB-DEV;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
  </ connectionStrings>
</configuration>

Я не понимаю, почему тестер NUnit терпит неудачу с сообщением Could not find named connection string MySolutionConnectionString, Согласно сообщению в блоге Джеймса Ковача о Loquacious Configuration, похоже, что это должно работать без проблем -

"Установка db.ConnectionStringName заставляет NHibernate прочитать строку подключения из раздела конфигурации [App|Web].config."

1 ответ

MySolution.Tests это dll, но App.configs читаются только для исходного файла.exe, который является тестовым запуском NUnit.

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