2 Stimmen

S#arp Lite - NHibernate Initializer findet keinen benannten Verbindungsstring

Ich versuche, S#arp Lite zu verwenden. Ich habe die Anweisungen hier befolgt - https://github.com/codai/Sharp-Lite/blob/master/README.txt

Wenn ich zum ersten Mal versuche, die MappingIntegrationTests in NUnit, erhalte ich die folgenden Fehler:

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 zeigt an, dass die oben genannten Fehler von der zweiten Zeile der Datei SetUp Methode in MappingIntegrationTests .

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

Die Initialize Methode meiner NHibernateInitializer Klasse,

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;
}

Und die App.Config Datei von MySolution.Tests Projekt,

<?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>

Ich verstehe nicht, warum der NUnit-Testrunner mit der Meldung fehlschlägt Could not find named connection string MySolutionConnectionString . Laut dem Blogbeitrag von James Kovacs auf Loquacious Configuration sollte dies ohne Probleme funktionieren.

"Das Setzen von db.ConnectionStringName veranlasst NHibernate, den Verbindungsstring aus dem config-Abschnitt der [App|Web].config zu lesen."

0voto

Firo Punkte 29738

MySolution.Tests ist eine dll, aber App.configs werden nur für die startende .exe-Datei gelesen, die der NUnit-Testrunner ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X