< Summary - Kestrun — Combined Coverage

Information
Class: Kestrun.Health.Probe
Assembly: Kestrun
File(s): /home/runner/work/Kestrun/Kestrun/src/CSharp/Kestrun/Health/Probe.cs
Tag: Kestrun/Kestrun@2d87023b37eb91155071c91dd3d6a2eeb3004705
Line coverage
0%
Covered lines: 0
Uncovered lines: 10
Coverable lines: 10
Total lines: 28
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100 10/13/2025 - 16:52:37 Line coverage: 0% (0/10) Total lines: 28 Tag: Kestrun/Kestrun@10d476bee71c71ad215bb8ab59f219887b5b4a5e

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)0%4260%
get_Name()100%210%
get_Tags()100%210%
get_Logger()100%210%

File(s)

/home/runner/work/Kestrun/Kestrun/src/CSharp/Kestrun/Health/Probe.cs

#LineLine coverage
 1namespace Kestrun.Health;
 2
 3/// <summary>
 4/// Base class for health probes.
 5/// </summary>
 6/// <param name="name">The name of the probe.</param>
 7/// <param name="tags">The tags associated with the probe.</param>
 8/// <param name="logger">The logger instance.</param>
 09public abstract class Probe(string name, IEnumerable<string>? tags, Serilog.ILogger logger) : IProbe
 10{
 11    /// <inheritdoc/>
 012    public string Name { get; } = string.IsNullOrWhiteSpace(name)
 013          ? throw new ArgumentException("Probe name cannot be null or empty.", nameof(name))
 014          : name;
 15
 16    /// <inheritdoc/>
 017    public string[] Tags { get; } = tags is null
 018        ? []
 019        : [.. tags.Where(static t => !string.IsNullOrWhiteSpace(t))
 020                      .Select(static t => t.Trim())
 021                      .Distinct(StringComparer.OrdinalIgnoreCase)];
 22
 23    /// <inheritdoc/>
 024    public Serilog.ILogger Logger { get; init; } = logger ?? throw new ArgumentNullException(nameof(logger));
 25
 26    /// <inheritdoc/>
 27    public abstract Task<ProbeResult> CheckAsync(CancellationToken ct);
 28}