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

可能性是ConfigurationManager.AppSettings["Part"]返回null。Hense 解析异常。

您的单元测试项目是否在其配置中定义了应用程序设置?

于 2012-07-31T15:58:17.067 回答
5

您应该将 app.config(或 web.config)文件复制到测试项目中。否则测试项目找不到它。请记住,配置与主机进程有关,而不是与 dll 本身有关。

于 2012-07-31T15:58:31.417 回答
0

将断点放在第 35 行,有一些不应该是 null 的东西...... Null 值无法解析为 INT....

确保配置文件正确放置在运行应用程序的目录中

于 2012-07-31T16:01:56.280 回答