mstest不复制项目中引用的库,但仅在运行时使用

时间:2011-12-21 22:30:04

标签: mstest

我有一个使用Microsoft Enterprise Library的项目,并使用配置为缓存管理器指定类型。

以这种方式加载缓存管理器取决于我的测试项目中包含 的库Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll作为参考,但库 未被使用直接通过代码(在编译时)。因此,编译的mytests.dll将不会引用该库(使用dotpeek进行验证)。

问题#1:为什么MSTest不将此类文件复制到临时文件夹进行测试? 问题2:是否有优雅的解决方法?

不优雅的解决方案#1 :对包含的库进行虚拟引用(如上所述in this thread);

或解决方案#2 :使用MSTest Deploy配置明确包含库。

解决方案#3
即使部署选项已关闭,在mstest中使用.testsettings文件也可以解决问题。即testsettings文件包含:

<Deployment enabled="false">
</Deployment>

似乎这样做导致mstest不在临时TestResults\user_HOST 2011-12-21 15_22_08\Out目录中运行,而是在bin\Debug(所讨论的库正确部署到其中)中运行。

这是mstest的预期行为吗?我的意思是,如果在.testsettings文件中禁用了部署,mstest不使用临时目录吗?

0 个答案:

没有答案