Как исключить тестовые сборки xunit из отчета о покрытии Jetbrains dotCover, запущенного из командной строки

Я запускаю свою CI-сборку в TeamCity и пытаюсь получить отчет о покрытии, чтобы исключить мои тестовые библиотеки DLL. Вот моя команда exec, отформатированная для удобства чтения.

Я установил dll xUnit contrib для dotCover 2.0 на всех агентов team city

dotCover.exe
    cover
    /TargetExecutable="Path/To/XUnit/Runner"
    /TargetArguments="My/Test/Assembly/Path"
    /Output=coverage.dcvr

Что работает и дает следующий отчет о покрытии

Мой отчет о покрытииМой подробный отчет о покрытии

Как видно на втором рисунке, моя dll Web.Tests включена в отчет о покрытии. Я пробовал следующее, чтобы отфильтровать тестовую 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>

Однако при этом вообще ничего не сообщается.

Я использую dotCover v2.0.425.72.

Я думаю, что, возможно, я нашел здесь ограничение с dotcover и xunit


Связанные вопросы


person Neil    schedule 27.03.2013    source источник


Ответы (1)


Как часто бывает, что когда вы пишете вопрос, вы находите ответ вскоре после этого ...

Отсутствие фильтров приводит к следующему xml в журналах

<AllowFilters>
    <Item>
        <AssemblyOrModuleFilter>*</AssemblyOrModuleFilter>
        <ClassFilter>*</ClassFilter>
        <FunctionFilter>*</FunctionFilter>
    </Item>
</AllowFilters>
<DenyFilters />

Добавление в строку /Filters=-:module=MyAssembly.Web.Tests изменяет xml на отсутствие отчетов ни о чем, поскольку разрешающие фильтры отключены.

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

Итак, исправление /Filters=+:module=*;class=*;function=*;-: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>

Что за тупица!

person Neil    schedule 27.03.2013