Vs2008单元测试不能找到测试项目的Config 文件

1.   问题

A----------a.config

 |

 |______ConfigDir

            |

            |--------b.config

            |

            ---------c.config

 A 项目使用了多个配置文件,而且配置文件分布多个目录,A在运行过程中会把a.config文件以及ConfigDir目录与Config目录下的两个b.Configc.Config文件拷贝到Bin目录。

B是测试A的单元测试项目时,把a.config文件与 ConfigDir目录及b.config c.config文件文件拷贝到BConfig下。运行B会发现找不到配置文件a,b,c

2.   分析

因为B 在默认的情况下它的 AppDomain.CurrentDomain.BaseDirectory目录并不是测试目录下的Bin目录,而是根据测试时[登录用户]_[机器名] [运行时间](如[XX]_[PCXXX][ 2011-03-16 20_04_04]格式)动态生成的一个目录。直接把A项目的配置文件与目录结构拷贝到B是找不到配置文件的。

B测试项目在

3.   解决方法

1)      打开菜单栏选Edit Test Run Configurations

2)      选择Deployment 去掉Enable deployment,这是最简单的改法。再次运行测试项目会发现测试项目,已近能找到配置文件了 ,此时的 AppDomain.CurrentDomain.BaseDirectory就是测试目录的Bin。当然另一种改法就是选择Enable deployment后,把所有A项目依赖的配置文件与目录结构都添加进去(添加目录使用Add File ,添加目录使用Add Directory),再次运行测试项目,会发现动态生成的测试目录中已经拷贝了配置文件了。

原文地址:https://www.cnblogs.com/hbb0b0/p/1988364.html