抑制Microsoft Fakes警告

问题描述 投票:13回答:2

我正在使用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服务器。是否有非诊断消息的警告编号,我可以直接在测试项目中忽略?

visual-studio-2013 microsoft-fakes
2个回答
14
投票

您可以使用shimgeneration删除类型

<Remove TypeName="c__DisplayClass" />

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

msdn link


0
投票

我通过进入我的Fakes文件夹并删除该程序集的伪造,然后进入References文件夹并删除该程序集的伪造DLL来解决这个问题。然后我右键单击引用中的程序集,然后选择Add Fakes Assembly(再次)。 在完成所有假货创建之后(花了几分钟),我再次构建了项目,所有错误都消失了。

© www.soinside.com 2019 - 2024. All rights reserved.