5

Tester.cs を呼び出すフォームの関数の単体テストに取り組んでいます。以下はエラーです。

Error   7/31/2012 10:43:11 PM   One of the background threads threw exception: 
System.TypeInitializationException: The type initializer for 'Tester.Tester' threw an exception. ---> System.ArgumentNullException: Value cannot be null.
Parameter name: String
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int32.Parse(String s)
   at Tester.Tester..cctor() in E:\Incubator\Tester\Tester\Tester.cs:line 35
   --- End of inner exception stack trace ---
   at Tester.Tester.Dispose(Boolean disposing)
   at System.ComponentModel.Component.Finalize()    MY-PC

35 行目には、基本的に構成ファイルから値を取得して整数に変換するコードがあります。

private static int _part = int.Parse(ConfigurationManager.AppSettings["Part"]);

エラーは何ですか?ありがとうございました。

4

3 に答える 3

5

null を返す可能性が高いですConfigurationManager.AppSettings["Part"]。解析例外をヘンスします。

単体テスト プロジェクトの構成でアプリ設定が定義されていますか?

于 2012-07-31T15:58:17.067 に答える
5

app.config (または web.config) ファイルをテスト プロジェクトにコピーする必要があります。そうしないと、テスト プロジェクトはそれを見つけることができません。config は、dll 自体ではなく、ホスト プロセスに関連していることを忘れないでください。

于 2012-07-31T15:58:31.417 に答える
0

ブレークポイントを 35 行目に置きます。あるべきではない null があります...Null 値は INT に解析できません....

アプリケーションを実行しているディレクトリに構成ファイルが正しく配置されていることを確認してください

于 2012-07-31T16:01:56.280 に答える