2011-12-19 73 views
2

我正在嘗試使用S#arp Lite。我在這裏跟着指示 - https://github.com/codai/Sharp-Lite/blob/master/README.txtS#arp Lite - NHibernate初始化程序未找到命名連接字符串

當我第一次嘗試運行在NUnit的的MappingIntegrationTests,我收到以下錯誤:

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

NHibernateInitializer類的Initialize方法,

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

而且從MySolution.Tests項目App.Config文件,

<?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。據對貧嘴配置詹姆斯科瓦奇的博客文章,這似乎是這應該沒有問題 -

「設置db.ConnectionStringName導致NHibernate的讀取來自[應用|網絡]的配置部分的連接字符串。配置「。

回答

0

MySolution.Tests是一個DLL,但App.configs只讀取作爲NUnit testrunner的起始.exe文件。