2016-12-29 79 views
3

我正在使用OpenCover爲我的項目生成測試覆蓋率報告,但它沒有生成任何數據。檢查我的日誌,它顯示有關有問題的dll的「缺少pdb」,但是pdbs在相同的目錄中可用。OpenCover在存在pdbs時報告丟失的pdbs(XUnit/.NET Core)

事情我已經嘗試:

  1. 我試着在明確使用-searchdirs選項PDBS添加目錄 - 沒什麼區別。
  2. 我已經檢查過,它看起來像XUnit不會做dll的影子複製,所以它們正從正確的目錄訪問。 opencover results.xml支持我。

我使用的

opencover.console -oldstyle -register:user 
        -target:"C:\Program Files\Dotnet\dotnet.exe" 
        -targetargs:"test" 
        -searchdirs:"C:\dev\public\hermes-c#\Hermes.Server\Hermes.AspNetCore.Test\bin\Debug\netcoreapp1.0" 

一個命令行的任何和所有的想法表示讚賞!

回答

5

默認情況下,.NET Core使用「Portable PDB」格式,OpenCover不理解yet

嘗試以下編譯選項,而不是:

"buildOptions": { 
    "debugType": "full" 
}, 

注:使用full時生成的調試符號僅適用於Windows ...

更新:基於MSBuild的項目,這將成爲:

<PropertyGroup> 
    <DebugType>full</DebugType> 
</PropertyGroup> 

而且,我們能夠o也可以使用/p:DebugType=Full開關構建。因此,「普通」版本可以使用默認的調試設置,但是用於覆蓋率分析的「特殊」版本可以將其更改爲完整版本。

+0

這正是我一直在尋找的!完美的作品,謝謝! –