代码改变世界

Visual Studio2010中unittest的xml文件路径error问题

2011-11-01 10:05  AnyKoro  阅读(516)  评论(0编辑  收藏  举报

【问题】

在单元测试中需要访问自定义的xml文件,或config文件时,会遇到vs说找不到相应文件的情况。

【原因】

在visual studio做单元测试时,相关的xml结果会默存放在一个output文件夹中,但是由于单元测试的默认机制,每次都会在TestResult中根据当前时间新建一个文件夹用以存放会用到的config文件和dll文件。这个时候就会出问题了。TestResult的OUTPUT目录是在testsetting里面设置的。而config文件的copy to Output Directory(选中config文件,选择properties)的属性是针对Build而言的,这样就会导致两个Output目录不一致的问题。那么此时你选择copy always的话,还是不会copy到testresult的OUTput目录中。这样,在访问相应会用到的xml文件时候,就会出现找不到文件的情况。从而报错。

【解决】

首先可通过vs的Test菜单项,选择Edit test setting编辑你使用到的testsetting,(当然也可以找到solution中的solution Items文件夹编辑其中的testsetting)。有了前面的原因分析。我们可以很容易的分析出,这里我们主要是变更输出目录即可,只要将两输出目录调整一致即可。我在这里是这么做的,在General中选择user define schema,并且去掉Append date-time stamp项,这个是为了让test result的output目录固定。然后这里设置的prefix定义了test result中的目录。然后,再选择unittest project的属性,在bulid标签处,将output directory改掉,选择为我们之前test result设置的output。这样两个output目录一致后,就一切正常了。