Teamcity 如何从命令行运行的Jetbrains dotCover覆盖率报告中排除xunit测试程序集

Teamcity 如何从命令行运行的Jetbrains dotCover覆盖率报告中排除xunit测试程序集,teamcity,xunit,dotcover,Teamcity,Xunit,Dotcover,我正在TeamCity上运行我的CI构建,并尝试获取覆盖率报告以排除测试DLL。这是我的exec命令,其格式为可读性 我已在所有team city代理上安装了适用于dotCover 2.0的xUnit contrib DLL dotCover.exe cover /TargetExecutable="Path/To/XUnit/Runner" /TargetArguments="My/Test/Assembly/Path" /Output=coverage.dcv

我正在TeamCity上运行我的CI构建,并尝试获取覆盖率报告以排除测试DLL。这是我的exec命令,其格式为可读性

我已在所有team city代理上安装了适用于dotCover 2.0的xUnit contrib DLL

dotCover.exe
    cover
    /TargetExecutable="Path/To/XUnit/Runner"
    /TargetArguments="My/Test/Assembly/Path"
    /Output=coverage.dcvr
它工作并生成以下报道报告

从第二张图片中可以看到,我的Web.Tests dll包含在覆盖率报告中。 我尝试了以下方法来过滤掉测试dll

dotCover.exe
    cover
    /TargetExecutable="Path/To/XUnit/Runner"
    /TargetArguments="My/Test/Assembly/Path"
    /Output=coverage.dcvr
    /Filters=-:module=MyAssembly.Web.Tests;

/Filters=-:*.Tests
/Filters=-:MyAssembly.Web.Tests
/Filters=-:module=MyAssembly.Web.Tests
它们在日志中生成以下xml

 <DenyFilters>
    <Item>
        <AssemblyOrModuleFilter>MyAssembly.Web.Tests</AssemblyOrModuleFilter>            
        <ClassFilter>*</ClassFilter>
        <FunctionFilter>*</FunctionFilter>
    </Item>
 </DenyFilters>
<AllowFilters>
    <Item>
        <AssemblyOrModuleFilter>*</AssemblyOrModuleFilter>
        <ClassFilter>*</ClassFilter>
        <FunctionFilter>*</FunctionFilter>
    </Item>
</AllowFilters>
<DenyFilters />



  • 当你写一个问题,然后很快就能找到答案时,这种情况有多频繁

    没有筛选器会导致日志中出现以下xml

     <DenyFilters>
        <Item>
            <AssemblyOrModuleFilter>MyAssembly.Web.Tests</AssemblyOrModuleFilter>            
            <ClassFilter>*</ClassFilter>
            <FunctionFilter>*</FunctionFilter>
        </Item>
     </DenyFilters>
    
    <AllowFilters>
        <Item>
            <AssemblyOrModuleFilter>*</AssemblyOrModuleFilter>
            <ClassFilter>*</ClassFilter>
            <FunctionFilter>*</FunctionFilter>
        </Item>
    </AllowFilters>
    <DenyFilters />
    
    因此,修复是
    /Filters=+:module=*;类别=*;函数=*;-:模块=MyAssembly.Web.Tests
    提供了以下xml

    <AllowFilters>
        <Item>
            <AssemblyOrModuleFilter>*</AssemblyOrModuleFilter>
            <ClassFilter>*</ClassFilter>
            <FunctionFilter>*</FunctionFilter>
        </Item>
    </AllowFilters>
    <DenyFilters>
        <Item>
            <AssemblyOrModuleFilter>MyAssembly.Web.Tests</AssemblyOrModuleFilter>
            <ClassFilter>*</ClassFilter>
            <FunctionFilter>*</FunctionFilter>
        </Item>
    </DenyFilters>
    
    
    *
    *
    *
    MyAssembly.Web.Tests
    *
    *
    
    多差劲啊