关于ASP.NET网站项目单元测试配置文件的注意事项

        最近在做一个小型的论坛类型的网站,朋友拉着做的,他接的私活忙不过来,让我帮忙做点,顺便赚点小钱,我只需要负责提供后端API,API写出来十几个方法,要测试他们的运行效果让我头大,通过启动网站,然后在地址栏一个URL一个参数地输入太糟心了。效率低下不说,运行效果还不直观。想想 还是建个单元测试项目吧,之前都没建过,但万事总有开头地时候吧。

测试项目怎么建就不说了,跟建类库差不多。

        几经周折测试测试项目终于能跑起来了,其中两个问题困扰了我好一段时间,仔细想想都是很简单地问题,真是滑稽,以后要引以为戒:

1.跑单元测试时,因为我们的启动项是单元测试项目,所以配置文件的配置项也只会以单元测试的配置文件为准,遗憾的是我们的网站项目的大多数配置项都写到了网站主程序的Web.Config文件中,很多小伙伴刚开始的时候可能都没注意到这点,导致,测试项目已启动就报链接字符串读取不到之类的错(比如我这个*,哎..)

错误:System.InvalidOperationException:“在应用程序配置文件中找不到名为“XXX”的连接字符串。”

关于ASP.NET网站项目单元测试配置文件的注意事项

其实只需要把这些配置项都拷贝到测试项目的配置文件里就行了,注意不要遗漏(当然这是最简单粗暴的做法)。

2.测试项目为了测试被测试的项目需要将被测试项目加入到项目引用中来,这个大家都知道,但是,如果被测试项目引入了第三方类库的话(比如EF),也需要将其加入到测试项目的引用中来,因为我们的项目是在测试项目的bin目录下运行的,第三方类库如果不引入进来,被测试项目是无法调用到第三方类库的API的,千万不要天真的以为我在被测试的项目中已经添加了第三方类库的引用,就万事大吉了,否则你会像下面那个*一样在你的测试项目中抛异常 T T。

错误:The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.”

关于ASP.NET网站项目单元测试配置文件的注意事项

希望对未来的某个人有帮助。