我正在尝试为TFS添加“排除文件”设置(对于jetbrains-dotcover)以便 避免程序员必须手动设置相同的设置。
在尝试并搜索之后我没有找到任何信息,因此我的问题是: 这可能吗?如果是这样的话?
答案 0 :(得分:1)
我假设您正在从TFS中的命令行运行dotCover。从命令行参考运行DotCover的documentation,您需要在调用中添加一个参数来排除程序集:
/ Filters = ARG :(可选)使用以下语法指定coverage过滤器:+:module = ; class = ; function = ; 使用 - :myassembly从代码覆盖范围中排除程序集。这里支持星号通配符()
如果您的coverage设置有dotCover xml文件,则可以将其排除在其中。查看相同的documentation以编辑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>
documentation中有一些关于如何从命令行设置运行的一般信息。
* Proviso:我没有尝试过我的建议,我只是从我自己的DotCover / TeamCIty TFS体验中进行投射。更多信息可能会提供更准确的答案。
<强>更新强>
如果你按照@Thomas评论使用dotCover,那么你可以通过运行dotCover并选择File =&gt; Edit Coverage Filters来编辑你的机器的过滤器...如果你在那里添加一个过滤器,它也将适用于任何来自视觉工作室。例如,添加程序集* Test * exclude过滤器将停止任何包含单词Test in的程序集包含在报告中:
我认为您的团队需要在他们的所有计算机上设置相同的排除过滤器。
<强> UPDATE2:强>
我找到了每个解决方案过滤器设置的存储位置。它们位于sln旁边的DotSettings文件中(例如MyProject.sln有MyProject.sln.DotSettings)。为了将此文件排除在此文件中,您应该在Visual Studio中打开解决方案,转到DotCover-&gt;编辑覆盖率过滤器并为当前解决方案添加过滤器。
这会在您的DotSettings文件中产生以下信息:
<s:String x:Key="/Default/FilterSettingsManager/CoverageFilterXml/@EntryValue"><data><IncludeFilters /><ExcludeFilters><Filter ModuleMask="*Maths*" ModuleVersionMask="*" ClassMask="*" FunctionMask="*" IsEnabled="True" /></ExcludeFilters></data></s:String>
如果您将DotSettings文件提交给TFS,您的团队将获得排除。请参阅有关共享设置的文档here和文档,以及有关设置here的信息。