Comments (6)
Should be fixed in release 4.0.649.
from altcover.
If altcover has an underlying assumption here, it's going to be that the IL it's processing looks more like what the F# compiler emits than a Roslyn compiler's output, rather than being a preference for debug over release.
The Gendarme
module is used to compute method cyclometric complexity -- it's a re-implementation of the part of the Mono Gendarme library that OpenCover uses for the same purpose that exists only because there isn't a .net core version of the original available. That code may well have a tacit assumption that it would only be used on debug builds.
The code injection for branch coverage detection is intended to be agnostic as to how the IL was composed, while not triggering false positives for the many common cases where the compiler injects its own branches that only transfer control within a sequence point.
from altcover.
The code of interest is of the form return selection ? : yes : no;
which compiles to IL which returns directly from that sequence point, wherever it is found in a method. It seems to be a fairly recognisable pattern
brtrue.s label
...
ret
label: ...
...
ret
so that should be fairly simple to add a special case for.
from altcover.
Yes, great - that addition will be extremely helpful.
from altcover.
Pre-release build 646 contains the substantive change for the branch coverage, though not for all the related measures e.g. complexity.
from altcover.
Great - thank you for providing a fix, it'll be a great help
from altcover.
Related Issues (20)
- Testhost process for source(s) '...\__Instrumented_UnitTests\UnitTests.dll' exited with error: Unhandled exception. System.MethodAccessException: Attempt by method 'Microsoft.VisualStudio.TestPlatform.Execution.UiLanguageOverride..ctor()' to access method 'Microsoft.VisualStudio.TestPlatform.CoreUtilities.Helpers.EnvironmentVariableHelper..ctor()' failed. HOT 5
- AltCover generates report with integer numbers that exceed Int32.MaxValue HOT 3
- MSBuild Tasks Support for Multi-Targeting Test Projects HOT 4
- Coverage file having complete build path in it for files causing issue while merging multiple coverage files together HOT 1
- Microsoft.NET.Test.Sdk 17.8.0 support HOT 7
- [enhancement] integration with xharness and/or device runners for iOS and Android HOT 2
- `dotnet test /p:AltCover=true /p:AltCoverInPlace=true` results in System.IO.IOException: The process cannot access the file 'C:\src\testprj\bin\Debug\net8.0\AltCover.Recorder.g.dll' because it is being used by another process. HOT 5
- help with getting started HOT 2
- Path.GetFullPath no longer resolves long file paths HOT 7
- Could not find coverage.xml.zip when running Instrumented binaries HOT 5
- Adding AltCover to projects results in dotnet test running against all projects in solution HOT 6
- Running AltCover Runner in parallel mode HOT 2
- Question about cyclomatic complexity for pattern match HOT 2
- Changes so AltCover will run when FIPS compliance is required HOT 13
- .../Temp/tmp###.altcover.runsettings not found Intermittent tests ignored. HOT 2
- BranchPoints differ between .NET Framework and .NET 7 when using interpolated strings HOT 5
- Question Regarding assemblies being added to code coverage result HOT 2
- Command vstest.console.exe not started. Why? HOT 3
- altcover runner --OutputFile gives incorrect summary output HOT 8
- ERROR *** Instrumentation phase failed - Failed to resolve assembly: System.Data.Common HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from altcover.