altcover 7.4.808

.NET Standard 2.0
There is a newer version of this package available.
See the version list below for details.
The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
Install-Package altcover -Version 7.4.808
dotnet add package altcover --version 7.4.808
<PackageReference Include="altcover" Version="7.4.808" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add altcover --version 7.4.808
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: altcover, 7.4.808"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install altcover as a Cake Addin
#addin nuget:?package=altcover&version=7.4.808

// Install altcover as a Cake Tool
#tool nuget:?package=altcover&version=7.4.808
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

A cross-platform pre-instrumenting code coverage tool set for .net/.net core and Mono

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (11)

Showing the top 5 popular GitHub repositories that depend on altcover:

Repository Stars
Simple, powerful, cross-platform SQLite client and ORM for .NET
A simple package with guard clause extensions.
ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats.
Base class with tests for adding specifications to a DDD model
Database migration tool for .NET and .NET Core projects. Inspired by Flyway.
Version Downloads Last updated
8.3.838 0 6/30/2022
8.2.837 32,918 3/10/2022
8.2.836 2,118 3/9/2022
8.2.835 20,521 1/29/2022
8.2.833 43,299 12/12/2021
8.1.819 9,366 4/14/2021

This build from

Q. Never mind the fluff -- how do I get started?

A. Start with the Quick Start guide :

# 7.4.808 (Genbu series release 13)
* [BUGFIX] In some use cases, the error `The "AltCover.ContingentCopy" task was not given a value for the required parameter "FileName".` could be provoked by `dotnet test` (Issue #113)
* Extend  to other Build Action types (at least all those that my VS2019 Community Edition was prepared to mention) the "If `/p:AltCoverInPlace` is not `true`, then copy all files in the project included as `<[Action] Include="./[some subdirectory]/..."` with `CopyToOutputDirectory` of `Always` or `PreserveNewest` to the appropriate relative location wrt the intrumented files" behaviour added for the `None` action in teh previous release.  File an issue report if you have yet another build action type that you need copying for a not-in-place test scenario.

# 7.4.807 (Genbu series release 12)
* [MAYBE BREAKING] Set `InPlace` default to `false` uniformly across the API
 * Add `dotnet test` command line option `/p:AltCoverInPlace=true|false` (default false)
 * If  `/p:AltCoverInPlace=true` then `/p:AltCoverForce=true` has its pre-v7.3.805 meaning
 * Wire up "InPlace" to the Fake `DotNet.test` driver for the above
 * If `/p:AltCoverInPlace` is not `true`, then copy all files in the project included as `<None Include="./[some subdirectory]/..."` with `CopyToOutputDirectory` of `Always` or `PreserveNewest` to the appropriate relative location wrt the intrumented files
 * **NB** `/p:AltCoverInPlace=true` will not play well with the concurrent instrument-and-test behaviour of `dotnet test [multipletestprojects].sln /p:AltCover="true" --output [commonArtifactsFolder]`
* Allow `--callContext` and `--single` together, which will log at most one visit _per context_ per location, not just one visit per location

# 7.3.806 (Genbu series release 11a)
* [BUGFIX] Handle concurrent instrumentation in the case `dotnet test [multipletestprojects].sln /p:AltCover="true" --output [commonArtifactsFolder]`

# 7.3.805 (Genbu series release 11)
* Extra detection and removal of compiler generated branches in C# `async`/`await` constructs
* Revise the whole `dotnet test` integration
 * Will support SDK versions back at least to v2.1.809, but v2.1.300 is definitely now out of support due to API changes to  the `Microsoft.TestPlatform.Build.Tasks.VSTestTask` task in the interim
 * Rather than copy/instrument back to `$(TargetDir)`/clean and copy-back, now instrument to a new directory and test there; there are now no worries about instrumented code ever being in the actual build artifact output directory
 * `/p:AltCoverForce=true` now simply clears the instrumentation target directory, and gives an informational message only
 * Resolve the instrumentation directory once and only once -- prevents inconsistent handling in the case where command line parameter`--output` redirects `$(TargetDir)` part-way through the process
* Some refactoring and other build process improvements

# 7.3.802 (Genbu series release 10)
* Add a `-q`option for AltCover, given once suppresses informational messages, twice also suppresses warnings and thrice also suppresses errors.  Away from the command line, the option is called `Verbosity`, and is based on `System.Diagnostics.TraceLevel` -- the default level being `Info`, with `Warning`, `Error` and `Off` equivalent to `-q`, `-qq` and `-qqq` respectively.  For the moment `Verbose` is the same as `Info`
* Other minor build process improvements

# 7.2.801 (Genbu series release 9)
* [BUGFIX] Don't `ArgumentNullException` when running the `--callContext` for `async` feature off the build machine
* [BUGFIX] Refactor to avoid "System.ArgumentException: An item with the same key has already been added. Key: AltCover.Recorder.g/" that could occur in some rare circumstances while instrumenting code.
* Other minor build process improvements

# 7.2.800 (Genbu series release 8)
* [BUGFIX] Don't produce invalid IL when `--callContext` indicates a method with a non-`void` return (issue #105, and probably #26 too)
* [BUGFIX] Restore application icons, even if they only show in the `.exe `forms (lost in 7.1.795 if not before)
* [BUGFIX] Add `AltCover` prefix to MSBuild property names `NetCoreEngine`, `NetStdEngine` (global), `InputDirectory` and `OutputDirectory` (target-scoped) in the injected `.targets` file for `dotnet test` integration.
* [BUGFIX] Let the AvaloniaUI based visualizer roll forwards from netcoreapp2.1 onto later runtimes
* Finer-grained control of the coverage summary output
* When `--callContext` indicates an `async` method, then track all calls within the same async flow, and not just in the direct same-thread call stack. **Note** other out-of-thread calls (`Thread.Start`, `Parallel.Invoke`, explict Async-named method invocation, ...) are not tracked.
* Build with net5.0 SDK (modulo work-round for in net5-only environments
 * Still build `AltCover.exe/.dll` against `net472` for framework support, `netcoreapp2.1` for the global tool and `netcoreapp2.0` for everywhere else
 * Still build the GTK2 visualizer against `net472` for consistency
 * Still build the recorder at `net20` and use that assembly everywhere (see F# compiler issue noted above) except where a `net46` version is substituted for tracking through `async` calls
 * Move unit tests to `net5.0`, as they are not public API

# 7.1.795 (Genbu series release 7)
* [BUGFIX] Make LCov tracefile output follow what is actually generated, and not just what the `man` page says
* As well as interfaces, hide other types with no non-abstract methods (e.g. plain enums) in the coverage
* Show the branch in `public int string Ternary(bool select) => !select ? Left : Right;` just like it is shown in `public int Ternary (bool select, int left, int right) { return select ? left : right; }`.
* For  <TrackedMethod /> records, add `entry` and `exit` attributes as semicolon separated lists of the UTC times in ticks at which the method was entered and returns
* For `dotnet test ... /p:AltCoverXmlReport=...` , if the value for the report file path contains one of the following literals
 * $(ProjectName)  
 * $(SolutionDir)  
 * $([System.Guid]::NewGuid())  
 then substitute in the actual values of those build parameters where they haven't already been replaced by MSBuild.
 Example: Using `/p:AltCoverXmlReport=$(SolutionDir)/_Reports/solution.$(ProjectName).xml` with `dotnet test` of a solution to place distinctly named report files in a common folder.
* Rationalise .net versions to help speed up the build and ease the net5.0 transition
 * Clear out some corner case differences between .net core and .net framework builds based on old work-arounds for symbol writing for the instrumented files
 * Build the recorder at `net20` only and use the same assembly everywhere
 * Move all the core logic from `AltCover.exe/.dll` to `AltCover.Engine.dll`
 * Unify the three different entry-point assembly instances into the now shim-like `AltCover.exe/.dll`
 * Build everything against `netstandard2.0` except executable shims and unit tests (tests at `netcoreapp3.0` by default)
 * Build `AltCover.exe/.dll` against `net472` for framework support, `netcoreapp2.1` for the global tool and `netcoreapp2.0` for everywhere else
 * Build the GTK2 visualizer against `net472` for consistency
 * `net472` debug builds for published libraries are retained purely for FxCop consumption
* Collect coverage from unit tests at build time too

# 7.1.783  (Genbu series release 6a)
* [Visualizer-global-tool]
 * [BUGFIX] Don't NRE when cancelling a File Open dialog when Avalonia uses its GTK binding (Linux)
 * Support font selection on Windows natively (monospace fonts only)
 * On non-Windows platforms, if Tcl/Tk `wish` is present, use that to perform font selection (choose wisely)

# 7.1.782  (Genbu series release 6)
* [BUGFIX] Don't throw NRE when encountering an interface with a default method implementation
* Omit interfaces without default method implementations from coverage recording, to match the behaviour of OpenCover (Issue #91)
* [Visualizer-global-tool]
 * Fix the display of branch information on the second and subsequent coverage file loaded in a session
 * Fix the loading of the most recently accessed files list to prune ones that don't now exist
 * other minor tidyings
* [Visualizer-GTK]
 * Make this look more like the Avalonia version
 * Tentative fix for the `About` dialog link-button on non-Windows platforms based partly on the Avalonia code.
 * Keep the GTK3 build in step, even though it's not packaged for release

# 7.1.780  (Genbu series release 5a)
* [Visualizer] Rewritten global tool based on the cross-platform AvaloniaUI toolkit (so no need for all the GTK3 set-up, including the `--schemadir[=path]` command-line parameter)
 * There's no font selection support yet as AvaloniaUI doesn't offer a cross-platform one
 * The colour scheme differs as there's not yet support for selecting a different background brush for text ranges -- covered = blue text
 * line numbers are shown, and are coloured according to any sequence point starting that line

# 7.1.778 (Genbu series release 5)
* [BUGFIX] Address problems revealed in issue #87
 * The collection process now fails gracefully if the XML report is missing or broken
 * `dotnet test` will halt after instrumentation fails, should it do so, rather than continuing to test and process the missing or broken XML report
 * Work round F# issue 9255 by replacing Newtonsoft as the JSON processor with one that can static link

# 7.1.777 (Genbu series release 4)
* [BUGFIX] Fix the GTK2/Framework Visualizer (broken since v6.8.761)
* Multi-monitor support for the Visualizer in all versions; the window will restore to its previous location even when placed on non-primary monitors
* Use integrated MSBuild error reporting in the data collector [used by the `dotnet test` integration](

# 7.1.776 (Genbu series release 3)
* [BUGFIX] Set the `visited` attribute and CRAP score accordingly for methods with no sequence points, if the method is recorded as having been visted at all.
* [BUGFIX] Exclude CRAP score for methods with no sequence points from the min/max summary values for the containing type and above (just as such methods aren't counted for the other roll-up quantities)
* Emit CRAP score values in the OpenCover style summary
* Distinguish between methods with source and no source in the threshold computations, the option to select the alternative measures (AM, AC) that include the no-source methods.  Extend the `TypeSafe.Thresholds` record type with the coresponding  extra fields.
* On a threshold violation, always report that via return code by preference to any non-zero process value.

# 7.0.773 (Genbu series release 2)
* [BUGFIX] Compute CRAP score for unvisited methods too (and add it to the higher level summary items)
* Add `TypeSafe.Filters.Join` to compute the concatenation of a `TypeSafe.FilterItems seq` to an existing `TypeSafe.Filters` instance.  Strict SemVer would bump the minor version at this point, but given the short time since the initial 7.0 release, I doubt the dust has settled fully yet.

# 7.0.770/771 (Genbu series release 1)
* There are functional changes (fixes and enhancements from the previous pre-release)
* [BUGFIX] Don't automatically exclude C# inner functions (and other `[CompilerGenerated]`) from coverage.
* [BREAKING; Command Line] Option `--defer` now takes no arguments; there is no use-case for the `--defer:-` so that and the redundant `--defer:+` are gone
* [BREAKING; MSBuild tasks] `AltCover.Prepare.Defer` defaults to `true`; in `dotnet test`, as the value is overridden (effectively forced true), this has no effect.
* [BREAKING; PowerShell] rename and generalise `Format-FromCoverletOpenCover` as `Write-OpenCoverDerivedState`
* [BREAKING; API] Rationalise and rename across most parts of the API, above and beyond the pre-release; remove `CSApi` as a separate assembly, with the main `AltCover` assembly publishing that part of the C# callable API, and split `FSApi` into `Toolkit` for PowerShell support and `DotNet` for `dotnet test` support.
* Add `--attributetoplevel`, `--typetoplevel`  and `--methodtoplevel` command line options (and equivalents) to allow inner classes or functions to be included in coverage independently their containing class or function.
* Revise/update/fix the Wiki API pages, help-text and the like
* Autogenerate more of the documentation

# 7.0.766-pre (Genbu series release pre-1)

* There should not be any functional changes before a full 7.0 release; the pre-release is just to ensure I'm happy with the API before freezing it for 7.x
* [BREAKING] Replace the `--opencover` command line argument and its equivalents with `--reportFormat=...` defaulting to `OpenCover` and currently also accepting `NCover`
* [BREAKING; dotnet tool] Remove the deprecated `altcover.dotnet` package with the old-style `DotNetCliToolReference` Tool
* [BREAKING; API] Rename the `AltCover_Fake` namespace to `AltCoverFake`, because it's simpler that way
* [BREAKING; API] Remove obsolete APIs previously marked as `[Obsolete]`
* [BREAKING; API] Rationalise and rename across most parts of the API
* [BREAKING; API, PowerShell] PowerShell cmdlets and the supporting API are now all `XDocument` based
* [BREAKING; PowerShell] Make the `Invoke-AltCover -ShowStatic` parameter take only the typesafe `enum`
* [Documentation] Completely revise the API documentation in [the wiki](
* [PowerShell]`Add-Accelerator` and `Get-Accelerator` cmdlets to write and read new type accelerators e.g. `[xdoc]` for `System.Xml.Linq.XDocument`
*  `--zipfile` command line option (and equivalents) to put the coverage report into a `.zip` archive
* `--methodpoint` command line option (and equivalents) to restrict visit reporting to just the method level
* extend `--threshold` command line option (and equivalents) to allow minimum branch or method coverage, and maximum CRAP score
* [Global tool] `TargetsPath` command line option for the global `altcover` tool to report where the associated `.targets` file is located (as it can't be `dotnet add`ed to a project)

For previous releases (6.x.x and earlier) [go here](