MS伪造单元测试在Visual Studio 2013 Update 4之后失败

Kyl*_*yle 18 unit-testing microsoft-fakes visual-studio-2013

我最近从Microsoft Visual Studio 2013 Update 3(高级版)升级到Microsoft Visual Studio 2013 Update 4(高级版),现在我的现有单元测试项目已停止编译.它失败并出现错误:

"Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1"类型在未引用的程序集中定义.您必须添加对程序集'Microsoft.QualityTools.Testing.Fakes,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用

我们和很多其他人一样,在VS2013中引入了一个类似的问题,可以通过在FakesAssemblies文件夹中手动删除.messages文件(通过文件资源管理器或解决方案资源管理器,查看所有文件已启用)来解决.项目文件夹.然而,即使我删除了整个FakesAssemblies文件夹,这也无法解决问题.

对项目的引用(包括正确的版本是它们在项目中).我删除了引用并读取它并且它没有效果,它们仍然无法编译.

单元测试项目仍然使用Visual Studio 2013 Update 3编译并传递给其他同事机器.

使用MS假货的新项目单元测试项目也无法构建.

如此简短,卸载Update 4还有什么我可以尝试的吗?

如果不是,我将在Microsoft Connect上记录一个错误.

小智 53

在参考属性中Microsoft.QualityTools.Testing.Fakes,将"特定版本"属性更改为FALSE.这样做将允许Visual Studio 2013使用Microsoft.QualityTools.Testing.Fakes您计算机上安装的任何版本.

使用Visual Studio 2013 Update 4,Microsoft将版本号Microsoft.QualityTools.Testing.Fakes.dll从11.0增加到12.0; 这就是导致事情破裂的原因.


Kyl*_*yle 5

  1. 修复是删除所有以.FAKES结尾的引用(包括Microsoft.QualityTools.Testing.Fakes.dll引用).
  2. 我还删除了FAKES文件夹
  3. 清理解决方案
  4. 然后读回所有参考文献.

我们还有一些与Shims有关的错误,但我们只是将它们转换为Stubs.

我们必须手动以这种方式升级所有项目,所有VS实例包括构建服务器.