抑制Microsoft Fakes警告

时间:2013-11-26 21:25:45

标签: visual-studio-2013 microsoft-fakes

我正在使用Microsoft Fakes来填充几个WindowsAzure组件进行测试。按照vs 2012: Shims compile中的建议,我更新了我的.fakes文件,只生成我实际需要的填充程序:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="false">
  <Assembly Name="Microsoft.WindowsAzure.Storage" Version="2.1.0.0"/>
  <StubGeneration>
    <Clear/>
  </StubGeneration>
  <ShimGeneration>
    <Clear/>
    <Add FullName="Microsoft.WindowsAzure.Storage.CloudStorageAccount"/>
    <Add FullName="Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient"/>
    <Add FullName="Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer"/>
    <Add FullName="Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob"/>
    <Add FullName="Microsoft.WindowsAzure.Storage.Queue.CloudQueueClient"/>
    <Add FullName="Microsoft.WindowsAzure.Storage.Queue.CloudQueue"/>
  </ShimGeneration>
</Fakes>

但我仍然得到“一些假货无法生成......”的警告。正在生成所有指定的填充程序,并且对上述任何行进行注释会导致我的测试项目无法构建。如果我打开诊断程序,我会看到许多消息,如:

Warning 2   Cannot generate shim for Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient+<>c__DisplayClass1: type is not supported because of internal limitations.

一切正常,我只想抑制警告,以免混淆我们的CI服务器。我是否可以在测试项目中忽略非诊断消息的警告编号?

2 个答案:

答案 0 :(得分:14)

您可以使用

从shimgeneration中删除类型
<Remove TypeName="c__DisplayClass" />

这将删除包含上述字符串的所有类型。

请参阅msdn link

答案 1 :(得分:0)

我解决了这一问题,方法是进入Fakes文件夹并删除该程序集的伪造品,然后进入References文件夹并删除该程序集的伪造品DLL。然后,右键单击引用中的程序集,然后再次选择“添加假冒程序集”。
完成所有假货创建工作后(花了几分钟),我再次构建了项目,所有错误都消失了。