如何解决单元测试“无法找到都database.config文件”的异常

这是曾一个开发组组长留下来的,觉得有意义,就拿出来了。

l 使用iBATIS.Net非常重要的一点,就是配置项目的database.config。

l 这个文件的重要性就不说了

l 可是我们添加测试项目之后一直抛出“无法找到都database.config文件”的异常

 

1.     首先,异常提示“无法找到都database.config文件”的异常,错误信息翻译过来是

“无法在E:\rcenter\Solution\HENU.RCenter.ServiceTest\bin\Debug路径下找到database.config文件”

于是,我将database.config拷贝一份到此目录下,运行,测试正常进行,提交。

 

2.     但是,将任务分配下去之后,同学反映还是抛出“无法找到都database.config文件”的异常,

这次错误信息翻译过来是:“无法在E:\rcenter\Solution\TestResults\hb_HB-PC2010-11-07 16_44_28\Out路径下找到database.config文件”

检查一下项目文件夹,项目的bin文件夹下是有这个文件的。

 

3.     发现执行测试项目的时候都会在项目文件夹下自动生成文件夹:TestResults

看来问题时出现在test project工程中的test results上面
每一次运行测试,都会在test results目录下面自动生成一个文件夹,例如
\TestResults\hb_HB-PC 2010-11-07 16_44_28\Out
打开这个文件夹,发现 可执行文件(exe),和所有的引用文件(DLL)都在这里,

后来我想到把资源文件(自定义xml)叶拷贝到这里,可是问题是testproject无法把一些资源文件自动拷贝到
\TestResults\hb_HB-PC 2010-11-07 16_44_28\Out目录下面

测试项目会自动拷贝到test project工程的bin目录下面,问题就在于测试的时候,它运行的是
\TestResults\hb_HB-PC 2010-11-07 16_44_28\Out目录下面的,看来必须要在测试方法执行之前将database.config文件拷贝过来

 

解决方案:在测试方法上加如下批注,例如

[DeploymentItem(@"HENU.RCenter.ServiceTest\bin\Debug",@"")]
[TestMethod()]
public voidUpdateBulletinTest()
{
             //代码
}
其中
HENU.RCenter.ServiceTest
是我们的测试项目

意思是,把原工程的某一个目录所有文件自动拷贝到测试某个目录下面,就可以了,OK!~


你可能感兴趣的:(单元测试,测试,dll,exe,任务,2010)