@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

NUnitでのConfigデータの読込方法について

1
投稿者投稿内容
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2003-05-01 15:12
お世話になっております。NUnitの記事を読んで、さっそく取り入れようと
利用しはじめたのですが、Configファイルから値を取得しているところで
エラーが発生してしまいます。NUnitでテスト時にConfigファイルの値を取得するには
どのようにすればよいのでしょうか。

例外が発生するコード
(テスト用コードの一部ではなく、テストされる側のコードです。)

public static string ConnectionStringWeb
{
get
{
return ConfigurationSettings.AppSettings["ConnectionStringWeb"];
}
}
例外の内容
XMLファイルc:\winnt\microsoft.net\framework\v1.0.3705\config\machine.config
種類 System.Security.Permissions.StrongNameIdentityPermission
mscorlib ,Version=1.0.3755,Curture=neutral のアクセス許可の要求に失敗しました。の読込に失敗しました。

at System.Configuration.ConfigurationRecord.OpenXmlTextReader(String configFileName)
at System.Configuration.ConfigurationRecord.Load(String filename)
at System.Configuration.DefaultConfigurationSystem.System.Configuration.IConfigurationSystem.Init()
at System.Configuration.ConfigurationSettings.SetConfigurationSystem(IConfigurationSystem configSystem)
at System.Configuration.ConfigurationSettings.GetConfig(String sectionName)
at System.Configuration.ConfigurationSettings.get_AppSettings()
at Common.DataCommon.get_ConnectionStringWeb() in D:\NetPGM\Common\DataCommon.cs:line 124

nunit-gui.exe.configにAppSettingの内容はコピーしました。
#各プロジェクトをテストするたびに、このconfigに書き写さなければならないのでしょうか。このconfigファイルを見てね..のような指示ができるといいのですが。


#VS2003を利用しているため、System.dllなどは、Ver1.1を参照しているクラスをテストしようとしています。
(NUnitはVer1.0のmachine.configを見にいこうとして例外が出ているようですので、
FCLのバージョン違いが原因でしょうか。)


くりごん
会議室デビュー日: 2003/05/02
投稿数: 4
投稿日時: 2003-05-02 18:38
お疲れ様です。
私も同じようなことでハマリました。

<TestProject>.dll.configというファイルを作成して、
テストしたいアプリのconfigファイルの内容をすべて
コピーします。そして、<TestProject>.dllと同じフォ
ルダ内に配置する必要があります。

*(1)<TestProject>はNunitのテストコードを記述したプロ
ジェクト。
*(2)テストコードの書き方は以下のページで紹介されてい
るNunit利用ガイドに従います。
http://objectclub.esm.co.jp/eXtremeProgramming/

 ようはユニットテスト用にconfigファイルを作成する
必要があります。
 全く解決しなかったらごめんなさい。
いのつち
ベテラン
会議室デビュー日: 2002/05/14
投稿数: 73
投稿日時: 2003-05-06 10:04
くりごんさん。
ご回答ありがとうございます。
Test用DLLのConfigファイルを作成することで、うまく読み込みできるようになりました。

また、VS2003でNUnitを使用して、例外が発生してしまう問題ですが、

CSメーリングリスト[CS:04135]
http://www.users.gr.jp/ml/archive/cs/
で今回の記事の著者である川俣氏が言及されており、対策法が紹介されておりました。
#現時点ではまだ過去ログが用意されてないので要点だけご紹介すると、

nunit-gui.exe.config に 下記の項目を追加することで対応できるとのことです。
<startup>
<supportedRuntime version="v1.1.4322" />
</startup>

くりごんさんの情報と、川俣氏の情報で解決できました。
ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)