2
我有一個包含我的DAL,程序集和單元測試項目的3項目解決方案。我正在使用ReSharper。單元測試帶App.Config的C#程序集返回異常
以下領域,我DAL,對象SectionHandler返回NULL:
public static DatabaseFactorySectionHandler SectionHandler =
(DatabaseFactorySectionHandler) ConfigurationManager.GetSection("DatabaseFactoryConfiguration");
這是從工廠類線。另一個從它繼承的類嘗試從其構造函數初始化該字段。
我記得我需要將我的App.config文件添加到我的單元測試項目(它指向Machine.config)。但是,它並沒有解決問題。我得到什麼,而不是嘗試運行我的測試時是:
> failed: Configuration system failed to initialize System.Configuration.ConfigurationErrorsException: Configuration > system failed to initialize ---> > System.Configuration.ConfigurationErrorsException: Unrecognized > configuration section section. > (C:\projects\MyAssembly.Tests\bin\Debug\MyAssembly.Tests.dll.temp.config > line 3)
我不明白的是配置文件的命名。在我的目錄中,我可以看到App.config已正確更名(MyAssembly.Tests.dll.config),但沒有temp.config的標誌。
這裏是我的app.config(這是目前什麼是我的測試項目,還有沒有其他App.configs的溶液)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="DatabaseFactoryConfiguration" type="MyClass.DatabaseFactorySectionHandler, MyClass.DBConnector, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections>
<connectionStrings>
<clear/>
<add name="Connector1" providerName="MyProvider" connectionString="myConnString" />
<add name="DB2Connector" providerName="IBM.Data.DB2" connectionString="myConnString2" />
</connectionStrings>
<DatabaseFactoryConfiguration Name="MyClassHere" ConnectionStringName="Connector1" />
<DatabaseFactoryConfiguration Name="MyOtherClassHere" ConnectionStringName="DB2Connector" />
</configuration>
爲什麼我不能讓單元測試項目識別我的配置文件?謝謝。
你使用什麼單元測試框架? NUnit的? MSTest的? – Bernard 2012-01-12 20:51:47
這是NUnit。我提到了ReSharper,因爲當我嘗試運行NUnit時,起初我遇到了有關多個配置文件的奇怪錯誤。描繪它是一個單獨的問題,我暫停它然後試圖運行它們。那是我碰到上述編譯器錯誤的時候。 – 2012-01-12 20:54:54