我正在对表单调用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"]);
错误是什么?谢谢。
答案 0 :(得分:4)
可能是ConfigurationManager.AppSettings["Part"]
返回null。因此解析异常。
您的单元测试项目是否在其配置中定义了应用程序设置?
答案 1 :(得分:4)
您应该将app.config(或web.config)文件复制到测试项目中。否则测试项目找不到它。记住配置与主机进程有关,而不是与dll本身有关。
答案 2 :(得分:0)
将断点放在第35行,其中有null,不应该是......空值无法解析为INT ....
确保配置文件正确放置在运行应用程序的目录