Releases: SteveGilham/altcover
Releases · SteveGilham/altcover
Genbu series release 12
7.4.807
- [MAYBE BREAKING] Set
InPlace
default tofalse
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 nottrue
, then copy all files in the project included as<None Include="./[some subdirectory]/..."
withCopyToOutputDirectory
ofAlways
orPreserveNewest
to the appropriate relative location wrt the intrumented files - NB
/p:AltCoverInPlace=true
will not play well with the concurrent instrument-and-test behaviour ofdotnet test [multipletestprojects].sln /p:AltCover="true" --output [commonArtifactsFolder]
- Add
- Allow
--callContext
and--single
together, which will log at most one visit per context per location, not just one visit per location
Genbu series release 11a
7.3.806
- [BUGFIX] Handle concurrent instrumentation in the case
dotnet test [multipletestprojects].sln /p:AltCover="true" --output [commonArtifactsFolder]
-- only changes the.targets
file
Genbu series release 11
7.3.805
- 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
- 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
- Some refactoring and other build process improvements
Genbu series release 10
7.3.802
- 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 calledVerbosity
, and is based onSystem.Diagnostics.TraceLevel
-- the default level beingInfo
, withWarning
,Error
andOff
equivalent to-q
,-qq
and-qqq
respectively. For the monentVerbose
is the same asInfo
- Other minor build process improvements
Genbu series release 9
7.2.801
- [BUGFIX] Don't
ArgumentNullException
when running the--callContext
forasync
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/7.2.0.0" that could occur in some rare circumstances while instrumenting code.
- Other minor build process improvements
Genbu series release 8
7.2.800
- [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 namesNetCoreEngine
,NetStdEngine
(global),InputDirectory
andOutputDirectory
(target-scoped) in the injected.targets
file fordotnet 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 anasync
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 dotnet/fsharp#10442) in net5-only environments
- Still build
AltCover.exe/.dll
againstnet472
for framework support,netcoreapp2.1
for the global tool andnetcoreapp2.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 anet46
version is substituted for tracking throughasync
calls - Move unit tests to
net5.0
, as they are not public API
- Still build
Genbu series release 7
7.1.795
- [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 inpublic int Ternary (bool select, int left, int right) { return select ? left : right; }
. - For records, add
entry
andexit
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
withdotnet test
of a solution to place distinctly named report files in a common folder.
Also
- 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
toAltCover.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 atnetcoreapp3.0
by default) - Build
AltCover.exe/.dll
againstnet472
for framework support,netcoreapp2.1
for the global tool andnetcoreapp2.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
Genbu series release 6a
7.1.783
- [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)
Genbu series release 6
7.1.782
- [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
Genbu series release 5a
7.1.780
- [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