长期一来,我们所完成的项目都没有写单元测试,今天我一时兴起,决定给自己写的代码写单元测试,简单的测试代码分分钟完成了,一运行测试,就懵逼了。没能达到我的预期效果,而是出现图1所示错误。
图1:单元测试异常
一看这错误,DBConnection类的属性初始化值发生了异常,DBConnection类代码如下所示:
namespace UC.Api.Common
{
public class DBConnection
{
public static string DB1 = System.Configuration.ConfigurationManager.ConnectionStrings["DB1"].ConnectionString;
public static string DB2 = System.Configuration.ConfigurationManager.ConnectionStrings["DB2"].ConnectionString;
}
}
很明显,这是没有读取到配置文件,于是我把项目的Web.config文件Copy到测试项目中,结果还是抛出图1一样的问题。想不明白了,于是乎开始百度,找了半个小时也没找到好的解决方案,百度到的结果有的解决方案是将读取Web.config文件的值直接写在代码中,这简直是Shit一样的解决方案。你觉得呢,这也是我写这篇博文的原因,希望能帮助到遇到该问题的童鞋。
突然想到控制台应用程序的配置文件名称应该App.config才对,于是在测试项目中添加了App.config文件,然后将Web.config文件的内容复制过来,问题解决了。
只为解决大家的问题,望指正。