2

TeamCityでCIビルドを実行していて、カバレッジレポートを取得してテストdllを除外しようとしています。これが読みやすいようにフォーマットされた私のexecコマンドです。

すべてのチームシティエージェントにdotCover2.0用のxUnitcontribdllをインストールしました

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

これは機能し、次のカバレッジレポートを生成します

マイカバレッジレポート 私の詳細なカバレッジレポート

2番目の図からわかるように、私のWeb.Testsdllはカバレッジレポートに含まれています。テスト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>

ただし、これにより、報告されるものはまったく停止します

dotCoverv2.0.425.72を使用しています。

ここでdotcoverとxunitの制限を見つけたかもしれないと思います


関連するQ

4

1 に答える 1

3

あなたが質問を書くとき、あなたはすぐ後に答えを見つけることがどれくらいの頻度でありますか...

フィルタがない場合、ログに次の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>

なんてこった!

于 2013-03-27T10:52:41.383 に答える