Rig.TUnit.Observability.Seq 0.1.0-beta.2

This is a prerelease version of Rig.TUnit.Observability.Seq.
dotnet add package Rig.TUnit.Observability.Seq --version 0.1.0-beta.2
                    
NuGet\Install-Package Rig.TUnit.Observability.Seq -Version 0.1.0-beta.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Rig.TUnit.Observability.Seq" Version="0.1.0-beta.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rig.TUnit.Observability.Seq" Version="0.1.0-beta.2" />
                    
Directory.Packages.props
<PackageReference Include="Rig.TUnit.Observability.Seq" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Rig.TUnit.Observability.Seq --version 0.1.0-beta.2
                    
#r "nuget: Rig.TUnit.Observability.Seq, 0.1.0-beta.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Rig.TUnit.Observability.Seq@0.1.0-beta.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Rig.TUnit.Observability.Seq&version=0.1.0-beta.2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Rig.TUnit.Observability.Seq&version=0.1.0-beta.2&prerelease
                    
Install as a Cake Tool

Rig.TUnit.Observability.Seq

Testcontainers-backed Seq server with Serilog sink — logs land in a real Seq instance; SeqAssert.Query(…).Count(N).Within(…) for fluent query-based verification.

What this package is

Boots a datalust/seq Testcontainer and wires a Serilog Seq sink so logs emitted through the fixture's ILoggerFactory actually land in Seq. Tests then assert via Seq's query language: SeqAssert.Query(fx, "Level=@Warning").Count(1).Within(10s). CaptureDashboardSnapshotAsync writes a .txt artefact to TestResults/seq-dashboards/ with the Seq URL and metadata for post-failure inspection.

When to use it

  • Integration tests where Serilog-structured logs matter end-to-end.
  • Regression-testing a Serilog configuration under real ingestion.
  • Producing failure-artefact URLs pointing into Seq for triage.
  • Not for: unit tests — use Rig.TUnit.Observability.Logging for in-memory capture.

Prerequisites

  • .NET 10 SDK
  • Docker Desktop / Colima (Seq image ~250 MB)
  • Serilog + Serilog.Sinks.Seq (transitive)

Quick start

using Microsoft.Extensions.Logging;
using Rig.TUnit.Observability.Seq.Fixtures;
using Rig.TUnit.Observability.Seq.Options;

await using var fx = new SeqFixture(new SeqFixtureOptions { ImageTag = "latest" });
await fx.InitializeAsync();

fx.Factory.CreateLogger("T").LogWarning("Disk low {Free}", 100);

Options

Property Type Default Description
ImageTag string "latest" Seq image tag
StartupTimeoutSeconds int 60 Seq boot window
AcceptEula bool true Seq EULA acceptance
MinimumLevel string "Information" Serilog filter

Fixture + helper APIs

  • Rig.TUnit.Observability.Seq.Fixtures.SeqFixture
  • Rig.TUnit.Observability.Seq.Options.SeqFixtureOptions
  • Rig.TUnit.Observability.Seq.Builder.SeqRigBuilder
  • Rig.TUnit.Observability.Seq.Assertions.SeqAssert

Per-test isolation

Each fixture runs its own Seq container — no cross-test data bleed. Logs include ServiceName = rigtunit-{IsolationKey} so multiple parallel Seq instances stay distinct.

Parallelism + performance

  • First-run pull: ~30 s.
  • Warm startup: ~5 s.
  • Per-log overhead: ~3–5 ms (Serilog batching typically hides this).
  • Parallelism: limited by container cost; 2–4 concurrent fixtures typical.

Troubleshooting

  • SeqAssert.Query(…).Count(1) times out — Seq is eventually consistent for index builds; default Within is 10 s, which is usually enough. Raise for heavy load.
  • Dashboard snapshot missingCaptureDashboardSnapshotAsync writes to TestResults/seq-dashboards/{testName}.txt; ensure the test runner's working directory is the project root.

See docs/troubleshooting.md#seq.

Provider quirks + edge cases

  • Seq query language is its own DSL — Level=@Warning, OrderId=42; see Seq docs for the full grammar.
  • The container's admin password is randomised per fixture; API keys are pre-created by the fixture so tests don't deal with auth.

Benchmarks

See SeqBenchmarks.cs; baseline in benchmarks/baseline-005.json.

License

MIT. See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Rig.TUnit.Observability.Seq:

Package Downloads
Rig.TUnit.All

Meta-package containing every Rig.TUnit.* package. DISCOURAGED — prefer per-feature or per-stack meta-packages (Rig.TUnit, Rig.TUnit.Microservices).

Rig.TUnit.Microservices

Meta-package: Core + Mediator + Grpc + Outbox + Tracing + Jwt + Seq — the opinionated microservice testing kit.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-beta.2 42 4/27/2026
0.0.0-alpha.0.14 49 4/26/2026