这是曾一个开发组组长留下来的,觉得有意义,就拿出来了。
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!~