0

私はメインのasp.netプロジェクトのweb.configと同じ設定が必要なクラスライブラリで単体テストを行いたいと思います。したがって、クラスライブラリにいくつかのweb.config設定を複製する必要があります。ユニットテスト中にweb.configとクラスライブラリの間で設定を共有するにはどうすればよいですか?

私は、クラスライブラリのプロジェクトプロパティの[設定]タブで設定を追加しました。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="ExternalServices.CPR.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <applicationSettings> 
     <ExternalServices.CPR.Properties.Settings> 
      <setting name="CprProdHostName" serializeAs="String"> 
       <value>direkte.cpr.dk</value> 
      </setting> 

質問クラスにメインweb.configファイルからいくつかの設定を複製/共有するための「ベストプラクティス」の方法は何1:

はその後app.configファイルは自動的にプロジェクトに追加されます単体テストを別々に実行する必要がありますが、同じコンフィグレーションで実行する必要がありますか?

質問2.名前で設定を読みたいと思います。 私はConfigurationManager.AppSettings ["CprProdHostName"]で読み取りを試みます。 (System.Configuration;を使用して)、それは動作しません、ちょうどnullを返しますか?

質問3. app.config-fileの目的は何ですか?ビルドアクションセットは存在せず、ファイルは出力にコピーされないため、デフォルトではどこにも表示されません。これは、実行時にこれらの設定を変更できないことを意味します。それはとても奇妙なことですよね?

答えて

0

は、あなたが以下のように設定するWeb構成について話しているホープ:

<configuration> 
    <appSettings> 
    <add key="HostName" value="www.hostname.com" /> 
    </appSettings> 
</configuration> 

一部の上にチェックし、それはまたusing System.Configuration;

を必要とするホスト名

ConfigurationManager.AppSettings["HostName"] 

のキー値を取得するためのコードの下に使用してください

+0

いいえ、私はweb.configについて話していませんでした。 「設定」タブで作成された標準的なプロジェクトプロパティについて話していました... Web設定は私にとっては興味深いものですが、別のプロジェクト、つまりWebプロジェクトであるため、この設定を複製することにしました私が上で議論したように、プロジェクトの "設定"。 –

関連する問題