抑制Microsoft Fakes警告

sup*_*tor 13 microsoft-fakes visual-studio-2013

我正在使用Microsoft Fakes来填充几个WindowsAzure组件进行测试.按照vs 2012中的建议: Shims 编译,我更新了我的.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>
Run Code Online (Sandbox Code Playgroud)

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

Warning 2   Cannot generate shim for Microsoft.WindowsAzure.Storage.Blob.CloudBlobClient+<>c__DisplayClass1: type is not supported because of internal limitations.
Run Code Online (Sandbox Code Playgroud)

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

all*_*len 14

您可以使用shimgeneration删除类型

<Remove TypeName="c__DisplayClass" />
Run Code Online (Sandbox Code Playgroud)

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

请参阅msdn链接

  • 这不适合我.在添加之后,我仍然得到相同的警告......就像它忽略了我添加该行的事实.它也为大约四十个其他类做这个.无论我放入多少个REMOVE线,它仍然声称它不能为它们生成垫片(我不想要它!)......这变得非常烦人.还有其他帮助吗?任何想法为什么我无法摆脱这些警告? (2认同)