2017-08-05 18 views
0

からdotCoverの総カバレッジ出力を読み取った私はdotCoverをGitLab CIサーバーから実行するように設定しました。 テストが正しく実行され、必要な出力が生成され、CIはGitLab成果物にカバレッジHTML出力を格納するように設定されます。これは完璧に動作します。GitLab CI

私がしようとしているのは、dotCover.exeコンソールランナーから出力されたカバレッジ全体を読み込み、gitlab CIで解析することです。私はdotCover documentationを読んでいましたが、コンソールにカバレッジを含む行を出力する方法が見つかりませんでした。 Gitlab CIはciジョブのsdoutからカバレッジ値を読み取ってカスタム正規表現とマッチさせます。

これは私の​​3210:

<?xml version="1.0" encoding="utf-8"?> 
<AnalyseParams> 
    <TargetExecutable>C:\NUnit\nunit3-console.exe</TargetExecutable> 
    <TargetArguments>--agents=1 MyDll.Spec.dll MyDll2.Spec.dll</TargetArguments> 
    <Output>cover/AppCoverageReport.html</Output> 
    <ReportType>html</ReportType> 
    <Scope> 
     <ScopeEntry>MyApp\bin\x86\Release\net461\MyApp.*.dll</ScopeEntry> 
     <ScopeEntry>MyApp\bin\x86\Release\net461\*.exe</ScopeEntry> 
    </Scope> 
    <Filters> 
     <ExcludeFilters> 
      <FilterEntry> 
       <ModuleMask>*.Spec</ModuleMask> 
      </FilterEntry> 
     </ExcludeFilters> 
    </Filters> 
</AnalyseParams> 

と私は.gitlab-ci.ymlでそれを実行します。

C:\dotCover\dotCover.exe analyse config.xml /TargetWorkingDir=. 

GitLab CIでこの値を表示する方法はありますか?私は明白な何かを欠いていますか

は、私が dotCoverのHTML出力ファイルを読み取り、出力を解析終わっ

+1

私はjacocoと同じ問題がありました。また、カバレッジファイルを含むHTMLファイルを作成しました。このファイルは 'xmllint'(Linuxでは)で解析しました。 xml/htmlに関してregexpを避けることを強くお勧めします。 –

+0

@ YanFotoあなたの入力をありがとう、この特定のHTMLは簡単に解析することができます、総カバレッジはJSセクションの冒頭にあるので、私は非常に単純な正規表現を使いました: '/ = \ [\ ?\ d +/'、しかし私はこの解決策がまったく気に入らない。私はより良い解析ツールを試してみます、 'dotCover'はウィンドウのみです。 – aghidini

答えて

0

ありがとうございます。幸いにも、総カバレッジは、出力ファイルの簡単に解析できる部分にあります。

my_job: 
    # your job configuration 
    # ... 
    scripts: 
    # build the solution here, ... 
    - dotCover.exe analyse dotCover.xml /TargetWorkingDir=. 
    - type cover\AppCoverageReport.html 
    coverage: '/= \[\["Total",\d+\.?\d+/' 

ない非常に長期的な解決策が、それはで、今の作品:カバレッジ正規表現は

'/= \[\["Total",\d+\.?\d+/' 

これが私の最後の.gitlab-ci.ymlファイル(Windowsのランナーのために、dotCoverはWindowsのみである)であります少なくとも私がdotCoverを更新するまで。