C# 如何将dotcover排除文件设置添加到TFS?

C# 如何将dotcover排除文件设置添加到TFS?,c#,tfs,dotcover,C#,Tfs,Dotcover,我正在尝试将我所做的“排除文件”设置(针对jetbrains dotcover)添加到TFS中,以便 避免共同程序员必须手动设置相同的设置 在尝试和搜索之后,我没有在那里找到任何信息,因此我的问题是: 这可能吗?如果是这样的话,怎么办?我想您是从TFS中的命令行运行dotCover的。参考命令行中运行的DotCover,您需要向调用中添加一个参数以排除程序集: /Filters=ARG:(可选)使用以下语法指定覆盖率过滤器:+:module=;类别=;函数=; 使用-:myassembly将程序

我正在尝试将我所做的“排除文件”设置(针对jetbrains dotcover)添加到TFS中,以便 避免共同程序员必须手动设置相同的设置

在尝试和搜索之后,我没有在那里找到任何信息,因此我的问题是:
这可能吗?如果是这样的话,怎么办?

我想您是从TFS中的命令行运行dotCover的。参考命令行中运行的DotCover,您需要向调用中添加一个参数以排除程序集:

/Filters=ARG:(可选)使用以下语法指定覆盖率过滤器:+:module=;类别=;函数=; 使用-:myassembly将程序集从代码覆盖范围中排除。此处支持星号通配符()

如果覆盖率设置有dotCover xml文件,则可以将排除放入其中。请参见编辑xml的相同内容。我想您需要添加的位应该是这样的:

<Filters>
  <ExcludeFilters>
    <FilterEntry>
      <ModuleMask>AssemblyToExclude.dll</ModuleMask>
      <ModuleMask>*Tests*</ModuleMask> <!--This is an example to exclude all assemblies with Tests in their name-->
    </FilterEntry>
  </ExcludeFilters>
</Filters>

AssemblyToExclude.dll
*测试*
中有一些关于如何设置从命令行运行的常规信息

*但书:我没有尝试我所建议的,我只是根据我自己的DotCover/TeamCIty TFS经验进行预测。更多信息可能会提供更准确的答案

更新:
如果您按照@Thomas comment使用dotCover,那么您可以通过运行dotCover并选择File=>edit Coverage filters来为您的机器编辑过滤器。。。如果在那里添加过滤器,它也将应用于从VisualStudio运行的任何覆盖率。例如,添加程序集*Test*exclude筛选器将阻止任何包含单词Test in的程序集包含在报告中:

我认为您的团队需要在所有机器上设置相同的排除过滤器

更新2:
我找到了存储每个解决方案过滤器设置的位置。它们位于sln旁边的点设置文件中(例如,MyProject.sln有MyProject.sln.DotSettings)。为了将排除项包含在此文件中,您应该在Visual studio中打开解决方案,然后转到DotCover->编辑覆盖率过滤器并为当前解决方案添加过滤器

这将在DotSettings文件中生成以下信息:

<s:String x:Key="/Default/FilterSettingsManager/CoverageFilterXml/@EntryValue">&lt;data&gt;&lt;IncludeFilters /&gt;&lt;ExcludeFilters&gt;&lt;Filter ModuleMask="*Maths*" ModuleVersionMask="*" ClassMask="*" FunctionMask="*" IsEnabled="True" /&gt;&lt;/ExcludeFilters&gt;&lt;/data&gt;</s:String>
dataIncludeFilters/ExcludeFiltersFilter模块掩码=“*数学*”模块化掩码=“*”类掩码=“*”函数掩码=“*”IsEnabled=“True”//ExcludeFilters/data

如果您将DotSettings文件提交给TFS,您的团队将获得排除。查看有关共享您的设置和文档以及关于设置它们的文档。

您如何在TFS中运行doTCover?你需要更详细地描述你在做什么,才能得到一个像样的答案。我不是在TFS上运行它。我将项目(也就是整个解决方案)存储在TFS中。我通过右键单击单元测试项目并单击“用dotcover覆盖单元测试”来“正常”运行dotcover。然后我必须在dotcover的DAL项目中包含新文件(DAL不是这些测试的一部分)。然后,当我签入TFS时,我的同事还需要手动排除这些项目或文件,而不是使用与我相同的排除设置。这就是我们想要避免的:每个人都需要这样做。这就是你的意思@a.vector?是的,这更有意义。我已经扩展了我的答案。hmmm我们通过单击相应的命令来启动dotcover来使用它,因此我们不使用那里的命令行选项。我在TFS中没有看到.xml,您是否需要手动将其包含进来,才能让它发挥作用?(这样你就可以“deoploy”你的排除设置,而不是仅仅在本地使用它们)?@Thomas,我已经更新了答案(再次;))来展示如何做到这一点。