S # arp Lite - NHibernate Initializer не находит именованную строку подключения - PullRequest
2 голосов
/ 19 декабря 2011

Я пытаюсь использовать 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 Ответ

0 голосов
/ 19 декабря 2011

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

...