JetBrains.dotCover.CommandLineTools 2025.2.1

Prefix Reserved
dotnet tool install --global JetBrains.dotCover.CommandLineTools --version 2025.2.1
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local JetBrains.dotCover.CommandLineTools --version 2025.2.1
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=JetBrains.dotCover.CommandLineTools&version=2025.2.1
                    
nuke :add-package JetBrains.dotCover.CommandLineTools --version 2025.2.1
                    

JetBrains dotCover. Cross-platform .NET code coverage tool.

The dotCover command-line tool lets you run code coverage analysis for .NET and .NET Framework projects, generate coverage snapshots or reports, and apply flexible filtering.


Analyze coverage in .NET projects

Build your project, run coverage analysis and get a coverage snapshot:

    dotnet build
    dotCover cover --snapshot-output snapshot.dcvr -- test --no-build

Run coverage analysis and generate a report:

  dotCover cover --xml-report-output report.xml -- test --no-build

Use a response file with configuration:

  dotCover cover @"~/config/config.txt"

Analyze coverage in .NET Framework projects

Make sure your project is already built.

Run coverage analysis (for example, using NUnit) and get a coverage snapshot:

    dotCover cover --target-executable "D:\Program Files\NUnit 2.6\bin\nunit-console.exe" \
      --target-arguments "D:\Projects\TheApplication\bin\Debug\AppTests.dll" \
      --snapshot-output snapshot.dcvr

Here:

  • --target-executable – path to the test runner (e.g., nunit-console.exe)
  • --target-arguments – path to the test DLL

Run coverage analysis and generate a report:

    dotCover cover --target-executable "D:\Program Files\NUnit 2.6\bin\nunit-console.exe" \
      --target-arguments "D:\Projects\TheApplication\bin\Debug\AppTests.dll" \
      --xml-report-output report.xml

Use a response file with configuration:

  dotCover cover @"D:\Config\config.txt"

Apply coverage filters

Use filters to exclude specific assemblies, code marked with attributes, or processes from analysis.

Assembly filter

  dotCover cover --exclude-assemblies MyTests,*Helpers

Attribute filter

  dotCover cover --exclude-attributes System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

Process filter

  dotCover cover --exclude-processes vstest.discovery.engine

Combine filters from CLI and response files

You can specify the same filter option multiple times — dotCover will combine the values.

  dotCover cover --exclude-assemblies "*.Tests" @filters.txt

Contents of filters.txt:

    --exclude-assemblies ThirdPartyLib
    --exclude-attributes System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

Command-line parameters

The following rules apply to all dotCover command-line parameters:

  • Use the same syntax across all platforms.
  • Separate parameter names and values with a space:
    --target-executable MyApp.exe
  • Parameters are case-sensitive and use kebab-case.
  • Escape paths with spaces using extra double quotes and backslashes:
    --target-arguments "\"D:\My Projects\MyApp\bin\Debug\AppTests.dll\""
  • Relative paths are resolved from the working directory.
  • If no output options are specified, dotCover generates a snapshot (.dcvr) by default.
    To get a report, use --json-report-output or --xml-report-output.
    To get both, specify both --snapshot-output and a report output option.
  • Use response files to manage long parameter sets:
    dotCover cover @args.txt

Command reference

cover

dotCover cover — Run coverage analysis on a specified application or test project
=================================================================================

Usage:
  dotCover cover <options> [-- <target arguments>]
  dotCover cover @<args-file> [@<args-file2> ...] [<options>]

Description:
  Runs coverage analysis for the specified executable, .NET test project, or any dotnet command.
  If no executable is specified, dotCover will try to automatically run 'dotnet'.

Options:
  --target-executable <path>
      Path to the application or test runner to analyze.
      If omitted, dotCover will auto-detect the 'dotnet' CLI.

  --target-arguments <args>
      Command-line arguments to pass to the target executable.
      You can omit the parameter and specify them after a double dash: -- arg1 arg2

  --target-working-directory <path>
      Application working directory. By default, it's the target’s directory.

  --snapshot-output <path>
      Path to save the raw coverage snapshot ('.dcvr'). Autogenerated if omitted.

Filter options:
  --exclude-assemblies <list>
      Comma-separated list of assembly names to exclude from analysis. Wildcards (*) allowed, e.g., *.Tests
      You can specify this option multiple times; all values will be combined.

  --exclude-attributes <list>
      Comma-separated list of fully qualified attribute names.
      Code marked with these will be excluded, e.g., System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
      Wildcards (*) allowed. You can specify this option multiple times; all values will be combined.

  --exclude-processes <list>
      Comma-separated list of process names to ignore during analysis. Wildcards (*) allowed.
      You can specify this option multiple times; all values will be combined.

Report options:
  --json-report-output <path>
      Paths to save formatted JSON report.

  --xml-report-output <path>
      Paths to save formatted XML report.

Advanced options:
  --temporary-directory <path>
      Directory for temporary files. By default, it's the system temp folder.

  --use-api
      Control the coverage session using the profiler API.

  --no-ngen
      Disable loading of NGen images during coverage.

  --log-file <path>
      Enable logging and specify the path to the log file.

Notes:
  - You can use response files with the '@<args-file>' syntax to simplify command lines.

Examples:
  dotCover cover --json-report-output report.json -- test
  dotCover cover @args.txt

report

dotCover report — Generate a coverage report from a snapshot
============================================================

Usage:
  dotCover report <options>
  dotCover report @<args-file> [@<args-file2> ...] [<options>]

Description:
  Creates a formatted report (XML or JSON) from a coverage snapshot (.dcvr).

Options:
  --snapshot-source <path>
      Required. Path to the coverage snapshot file (.dcvr).

  --json-report-output <path>
      Paths to save formatted JSON report.

  --xml-report-output <path>
      Paths to save formatted XML report.

Advanced options:
  --log-file <path>
      Enable logging and specify the path to the log file.

Notes:
  - You can use response files with the '@<args-file>' syntax to simplify command lines.

Examples:
  dotCover report --snapshot-source merged.dcvr --xml-report-output report.xml
  dotCover report @report-args.txt

merge

dotCover merge — Combine multiple coverage snapshots into one
=============================================================

Usage:
  dotCover merge <options>
  dotCover merge @<args-file> [@<args-file2> ...] [<options>]

Description:
  Merges two or more coverage snapshots (.dcvr files) into a single snapshot.
  This is useful when coverage was collected in separate test runs (e.g., with different test frameworks or target platforms).

Options:
  --snapshot-source <list>
      Required. Comma-separated list of source snapshot files to merge.

  --snapshot-output <path>
      Path to save the merged snapshot (.dcvr). If omitted, a file name will be generated automatically.

Advanced options:
  --temporary-directory <path>
      Directory for temporary files. By default, it's the system temp folder.

  --log-file <path>
      Enable logging and specify the path to the log file.

Notes:
  - You can use response files with the '@<args-file>' syntax to simplify command lines.

Examples:
  dotCover merge --snapshot-source run1.dcvr,run2.dcvr --snapshot-output merged.dcvr
  dotCover merge @merge-args.txt

version

dotCover version — Write the current dotCover version to a file
===============================================================

Usage:
  dotCover version [options]

Description:
  Write the version to a specified file.

Options:
  --text-output <path>
      Path to save the version information as plain text.

Examples:
  dotCover version
  dotCover version --text-output version.txt

help

dotCover help — Show help for dotCover CLI commands
===================================================

Usage:
  dotCover help [<command>]

Description:
  Displays detailed help for a specific command.

Available commands:
  cover     Run coverage analysis on an application or test project
  merge     Combine multiple coverage snapshots into one
  report    Generate a coverage report from a snapshot
  version   Display the current dotCover version
  help      Show help on commands

Examples:
  dotCover help cover

Exit codes

dotCover exit codes — Meaning of return codes from CLI commands
===============================================================

Exit codes returned by dotCover commands:

  0   Success  
      The command completed successfully.

  1   Command execution error  
      An unexpected error occurred while executing the command.

  2   Command configuration error  
      One or more required parameters were missing or invalid.

  3   Target application error  
      The target application or test runner returned a non-zero exit code.

  4   Command timeout  
      The command execution timed out before completion.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Windows Store netcore is compatible.  netcore45 was computed.  netcore451 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2025.2.1 0 9/4/2025
2025.1.7 1,455 9/3/2025
2025.1.6 18,988 8/19/2025
2025.1.5 17,725 8/4/2025
2025.1.4 46,053 6/30/2025
2025.1.3 41,563 6/12/2025
2025.1.2 92,995 5/7/2025
2025.1.1 20,516 4/28/2025
2025.1.0 63,714 4/14/2025
2024.3.8 154,135 5/20/2025
2024.3.7 205,215 4/3/2025
2024.3.6 90,778 2/28/2025
2024.3.5 50,048 2/7/2025
2024.3.4 32,487 1/23/2025
2024.3.3 85,268 12/23/2024
2024.3.2 127,104 12/11/2024
2024.3.1 4,033 12/10/2024
2024.3.0 124,602 11/13/2024
2024.2.9 178 5/28/2025
2024.2.8 508 1/29/2025
2024.2.7 30,935 10/23/2024
2024.2.6 24,659 10/9/2024
2024.2.5 28,773 9/20/2024
2024.2.4 381,666 9/9/2024
2024.2.3 33,113 8/30/2024
2024.2.2 9,719 8/26/2024
2024.2.1 9,934 8/20/2024
2024.2.0 34,650 8/15/2024
2024.1.7 377 2/19/2025
2024.1.6 9,544 8/13/2024
2024.1.5 20,367 8/6/2024
2024.1.4 84,377 6/24/2024
2024.1.3 42,566 6/8/2024
2024.1.2 67,228 5/7/2024
2024.1.1 85,205 4/17/2024
2024.1.0 176,485 4/9/2024
2023.3.6 2,331 6/8/2024
2023.3.5 4,745 4/22/2024
2023.3.4 32,980 3/12/2024
2023.3.3 227,142 1/22/2024
2023.3.2 198,208 12/20/2023
2023.3.1 29,521 12/12/2023
2023.3.0 72,591 12/5/2023
2023.2.5 28,202 6/8/2024
2023.2.4 20,117 3/11/2024
2023.2.3 109,815 11/3/2023
2023.2.2 85,183 9/26/2023
2023.2.1 41,016 8/24/2023
2023.2.0 38,756 8/2/2023
2023.1.7 442 6/8/2024
2023.1.6 1,536 3/15/2024
2023.1.5 2,365 3/12/2024
2023.1.4 14,059 7/18/2023
2023.1.3 40,170 6/22/2023
2023.1.2 76,789 5/17/2023
2023.1.1 22,335 4/26/2023
2023.1.0 30,715 4/5/2023
2022.3.3 25,413 3/22/2023
2022.3.2 100,758 1/26/2023
2022.3.1 45,077 12/21/2022
2022.3.0 180,657 12/7/2022
2022.2.4 103,921 11/8/2022
2022.2.3 103,437 9/13/2022
2022.2.2 28,569 8/22/2022
2022.2.1 21,365 8/10/2022
2022.2.0 15,312 8/2/2022
2022.1.2 107,144 6/3/2022
2022.1.1 119,011 4/29/2022
2022.1.0 38,153 4/19/2022
2021.3.4 118,692 3/30/2022
2021.3.3 182,482 1/31/2022
2021.3.2 113,453 12/24/2021
2021.3.1 19,706 12/10/2021
2021.3.0 17,105 12/8/2021
2021.2.3 12,471 12/28/2021
2021.2.2 225,265 10/13/2021
2021.2.1 138,275 8/27/2021
2021.2.0 95,646 8/3/2021
2021.1.5 47,931 7/22/2021
2021.1.4 22,812 7/14/2021
2021.1.3 346,379 5/26/2021
2021.1.2 100,223 4/23/2021
2021.1.1 20,863 4/10/2021
2021.1.0 38,923 4/8/2021
2020.3.4 42,726 3/17/2021
2020.3.3 29,642 2/22/2021
2020.3.2 104,405 12/30/2020
2020.3.1 10,520 12/24/2020
2020.3.0 30,017 12/14/2020
2020.2.5 9,450 12/18/2020
2020.2.4 119,936 10/1/2020
2020.2.3 22,352 9/18/2020
2020.2.2 12,796 9/10/2020
2020.2.1 40,938 8/21/2020
2020.2.0 24,850 8/13/2020
2020.1.4 150,331 7/9/2020
2020.1.3 161,338 5/19/2020
2020.1.2 18,879 5/7/2020
2020.1.1 65,375 4/29/2020
2020.1.0 15,605 4/16/2020
2019.3.4 70,827 2/28/2020
2019.3.3 10,413 2/20/2020
2019.3.2 37,935 2/12/2020
2019.3.1 125,321 12/20/2019
2019.3.0 130,874 12/11/2019
2019.2.4 146,607 1/14/2020
2019.2.3 99,433 10/18/2019
2019.2.2 208,316 8/29/2019
2019.2.1 34,775 8/20/2019
2019.1.3 65,187 7/10/2019
2019.1.2 33,324 6/6/2019
2019.1.1 46,445 5/2/2019
2019.1.0 8,608 4/30/2019
2018.3.5 11,072 5/17/2019
2018.3.4 255,552 3/5/2019
2018.3.3 31,067 2/11/2019
2018.3.2 8,543 1/30/2019
2018.3.1 147,586 12/27/2018
2018.3.0 6,522 12/18/2018
2018.2.3 192,905 9/13/2018
2018.2.2 22,468 9/11/2018
2018.2.1 48,528 8/30/2018
2018.2.0 89,720 8/21/2018
2018.1.4 45,268 8/2/2018
2018.1.3 13,669 7/5/2018
2018.1.2 46,647 5/31/2018
2018.1.1 8,190 5/25/2018
2018.1.0 24,725 4/16/2018
2017.3.5 37,155 3/23/2018
2017.3.4 6,361 3/23/2018
2017.3.3 12,675 3/2/2018
2017.3.2 40,286 2/1/2018
2017.3.1 80,524 12/22/2017
2017.3.0 7,900 12/19/2017