fauna / fauna-dotnet

Fauna FQL v10 driver for C#
Mozilla Public License 2.0
1 stars 1 forks source link

feat(code-coverage): Add code coverage test run as GH Action and comment coverage details to PR #163

Closed adambollen closed 2 months ago

adambollen commented 2 months ago

Description

Adding code-coverage using coverlet and reportgenerator packages; first attempt just comments with current coverage and uses just net8.0 for the framework. Further improvements could be figuring out how to do historical delta so a PR could be compared to main and only pass if the coverage increases (due to adding tests).

Motivation and context

We'd like to have code-coverage for all drivers so that we can at least provide a glimpse into the test coverage that a given change is adding.

How was the change tested?

Did a lot locally with the coverage build and different types of reports, then opened a draft PR to see what it looks like in GH.

Change types

Checklist:


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

github-actions[bot] commented 2 months ago

Summary

Summary ||| |:---|:---| | Generated on: | 08/30/2024 - 18:44:53 | | Parser: | OpenCover | | Assemblies: | 1 | | Classes: | 107 | | Files: | 75 | | **Line coverage:** | 81.5% (3059 of 3750) | | Covered lines: | 3059 | | Uncovered lines: | 691 | | Coverable lines: | 3750 | | Total lines: | 8219 | | **Branch coverage:** | 71.8% (1039 of 1446) | | Covered branches: | 1039 | | Total branches: | 1446 | | **Method coverage:** | [Feature is only available for sponsors](https://reportgenerator.io/pro) | | Tag: | d988467 |

Coverage

Fauna - 81.5% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Fauna**|**81.5%**|**71.8%**| |Fauna.BaseClient|80%|58.3%| |Fauna.Client|74%|52.9%| |Fauna.Configuration|100%|100%| |Fauna.Core.Connection|89.4%|58.3%| |Fauna.Core.Endpoints|100%|| |Fauna.Core.ErrorInfo|100%|| |Fauna.Core.QueryFailure|100%|66.6%| |Fauna.Core.QueryOptions|82.1%|81.8%| |Fauna.Core.QueryResponse|70%|77.2%| |Fauna.Core.QueryStats|57.1%|| |Fauna.Core.QuerySuccess`1|69.2%|50%| |Fauna.Core.RetryConfiguration|100%|50%| |Fauna.Core.Stats|100%|| |Fauna.Core.StatsCollector|86.2%|100%| |Fauna.Core.StreamEnumerable`1|100%|66.6%| |Fauna.Exceptions.AbortException|100%|83.3%| |Fauna.Exceptions.BadGatewayException|0%|| |Fauna.Exceptions.ContendedTransactionException|100%|| |Fauna.Exceptions.ExceptionFactory|62.5%|84.8%| |Fauna.Exceptions.FaunaException|25%|| |Fauna.Exceptions.ForbiddenException|100%|| |Fauna.Exceptions.InvalidRequestException|100%|| |Fauna.Exceptions.NetworkException|100%|| |Fauna.Exceptions.NullDocumentException|100%|| |Fauna.Exceptions.ProtocolException|0%|| |Fauna.Exceptions.QueryCheckException|100%|| |Fauna.Exceptions.QueryRuntimeException|100%|| |Fauna.Exceptions.QueryTimeoutException|100%|| |Fauna.Exceptions.SerializationException|100%|| |Fauna.Exceptions.ServiceException|80.9%|| |Fauna.Exceptions.ThrottlingException|42.8%|| |Fauna.Exceptions.TimeoutException|100%|| |Fauna.Exceptions.UnauthorizedException|100%|| |Fauna.IQueryFragmentExtensions|0%|| |Fauna.Linq.DataContext|84.1%|87.5%| |Fauna.Linq.DataContextBuilder`1|92.1%|86.6%| |Fauna.Linq.IntermediateQueryHelpers|80%|83.3%| |Fauna.Linq.IPipelineExecutor|55.2%|28.2%| |Fauna.Linq.IQuerySource|0%|0%| |Fauna.Linq.LookupTable|40%|16.6%| |Fauna.Linq.MappedDeserializer`2|75%|| |Fauna.Linq.Pipeline|100%|100%| |Fauna.Linq.ProjectionAnalysisVisitor|92.3%|50%| |Fauna.Linq.ProjectionDeserializer|80.9%|58.3%| |Fauna.Linq.ProjectionRewriteVisitor|96.9%|90%| |Fauna.Linq.QuerySource|100%|| |Fauna.Linq.QuerySource`1|93.1%|88.8%| |Fauna.Linq.QuerySourceExtensions|25%|50%| |Fauna.Linq.SubQuerySwitch|56.7%|19.4%| |Fauna.Mapping.FieldAttribute|100%|| |Fauna.Mapping.FieldInfo|100%|91.6%| |Fauna.Mapping.FieldName|100%|100%| |Fauna.Mapping.MappingContext|100%|100%| |Fauna.Mapping.MappingInfo|100%|100%| |Fauna.Query|100%|| |Fauna.QueryArr`1|0%|0%| |Fauna.QueryExpr|80%|50%| |Fauna.QueryLiteral|86.1%|62.5%| |Fauna.QueryStringHandler|100%|100%| |Fauna.QueryVal|79.5%|50%| |Fauna.Serialization.BaseSerializer`1|60%|| |Fauna.Serialization.BooleanSerializer|92.3%|83.3%| |Fauna.Serialization.ByteSerializer|92.3%|83.3%| |Fauna.Serialization.CheckedSerializer`1|77.7%|33.3%| |Fauna.Serialization.ClassSerializer`1|84.6%|86.3%| |Fauna.Serialization.DateOnlySerializer|92.3%|83.3%| |Fauna.Serialization.DateTimeOffsetSerializer|92.3%|83.3%| |Fauna.Serialization.DateTimeSerializer|92.3%|83.3%| |Fauna.Serialization.DictionarySerializer`1|82.6%|62.5%| |Fauna.Serialization.DocumentSerializer`1|85.2%|80%| |Fauna.Serialization.DoubleSerializer|92.3%|83.3%| |Fauna.Serialization.DynamicSerializer|79.3%|77.3%| |Fauna.Serialization.FloatSerializer|92.3%|83.3%| |Fauna.Serialization.IntSerializer|92.3%|83.3%| |Fauna.Serialization.ListSerializer`1|85%|66.6%| |Fauna.Serialization.LongSerializer|92.3%|83.3%| |Fauna.Serialization.ModuleSerializer|87.5%|50%| |Fauna.Serialization.NullableDocumentSerializer`1|92.3%|87.5%| |Fauna.Serialization.NullableSerializer`1|100%|100%| |Fauna.Serialization.NullableStructSerializer`1|100%|100%| |Fauna.Serialization.PageSerializer`1|89.7%|87.5%| |Fauna.Serialization.SByteSerializer|92.3%|83.3%| |Fauna.Serialization.Serializer|94.2%|87.2%| |Fauna.Serialization.ShortSerializer|92.3%|83.3%| |Fauna.Serialization.StreamSerializer|57.1%|50%| |Fauna.Serialization.StringSerializer|92.8%|87.5%| |Fauna.Serialization.UIntSerializer|92.3%|83.3%| |Fauna.Serialization.UShortSerializer|92.3%|83.3%| |Fauna.Serialization.Utf8FaunaReader|72.6%|77.8%| |Fauna.Serialization.Utf8FaunaWriter|90.1%|| |Fauna.Types.BaseDocument|53.3%|| |Fauna.Types.Document|100%|| |Fauna.Types.Event`1|87%|68.1%| |Fauna.Types.Module|52.6%|20%| |Fauna.Types.NamedDocument|100%|| |Fauna.Types.NamedRef|100%|| |Fauna.Types.NonNullDocument`1|100%|| |Fauna.Types.NullableDocument`1|100%|| |Fauna.Types.NullDocument`1|100%|| |Fauna.Types.Page`1|100%|| |Fauna.Types.Ref|100%|| |Fauna.Types.Stream|61.2%|25%| |Fauna.Util.DefaultExpressionSwitch`1|0%|| |Fauna.Util.Expressions|100%|100%| |Fauna.Util.ExpressionSwitch`1|84.8%|75.5%| |Fauna.Util.Extensions.PaginationExtensions|100%|100%| |Fauna.Util.Extensions.TypeExtensions|93.3%|81.2%|
adambollen commented 2 months ago

Code coverage diff works (and there's conditional logic to skip since comparing to main doesn't work in this PR); see the comment on this PR: https://github.com/fauna/fauna-dotnet/pull/165