Excalibur.Testing.Conformance
10.0.0-alpha.8
dotnet add package Excalibur.Testing.Conformance --version 10.0.0-alpha.8
NuGet\Install-Package Excalibur.Testing.Conformance -Version 10.0.0-alpha.8
<PackageReference Include="Excalibur.Testing.Conformance" Version="10.0.0-alpha.8" />
<PackageVersion Include="Excalibur.Testing.Conformance" Version="10.0.0-alpha.8" />
<PackageReference Include="Excalibur.Testing.Conformance" />
paket add Excalibur.Testing.Conformance --version 10.0.0-alpha.8
#r "nuget: Excalibur.Testing.Conformance, 10.0.0-alpha.8"
#:package Excalibur.Testing.Conformance@10.0.0-alpha.8
#addin nuget:?package=Excalibur.Testing.Conformance&version=10.0.0-alpha.8&prerelease
#tool nuget:?package=Excalibur.Testing.Conformance&version=10.0.0-alpha.8&prerelease
Excalibur.Testing.Conformance
Conformance test kits for Excalibur infrastructure implementations. Provides reusable abstract test suites that verify provider implementations conform to the expected contracts for IEventStore, ISnapshotStore, IOutboxStore, ISagaStore, and other infrastructure interfaces.
Installation
dotnet add package Excalibur.Testing.Conformance
Purpose
When implementing a custom provider (e.g., a new database backend for event sourcing), use these conformance test kits to verify your implementation meets all contract requirements. Each test kit provides a comprehensive set of tests covering happy paths, edge cases, and error handling.
Available Test Kits
| Test Kit | Interface Under Test |
|---|---|
EventStoreConformanceTestKit |
IEventStore |
SnapshotStoreConformanceTestKit |
ISnapshotStore |
OutboxStoreConformanceTestKit |
IOutboxStore |
InboxStoreConformanceTestKit |
IInboxStore |
SagaStoreConformanceTestKit |
ISagaStore |
DeadLetterStoreConformanceTestKit |
IDeadLetterStore |
LeaderElectionConformanceTestKit |
ILeaderElection |
EncryptionProviderConformanceTestKit |
IEncryptionProvider |
AuditStoreConformanceTestKit |
IAuditStore |
Quick Start
public class MyCustomEventStoreConformanceTests : EventStoreConformanceTestKit
{
protected override IEventStore CreateEventStore()
{
// Return your custom implementation
return new MyCustomEventStore(connectionString);
}
}
Which testing kit do I reach for?
This package answers one question: "Does my custom provider implementation obey the framework
contract?" — use a conformance kit when you write a new backend for an infrastructure interface
(a new IEventStore, IOutboxStore, ISagaStore, ILeaderElection, and so on) and want to prove
it satisfies every contract requirement.
It is not a resilience/fault-injection kit. To prove your handlers and sagas stay idempotent and eventually consistent under adverse transport conditions — duplicate delivery, message reordering, broker disconnects, consumer crash-and-restart, slow consumers — use the chaos / fault-injection test kit instead. The two kits share the same underlying test infrastructure and container fixtures, so there is no duplicated surface: conformance verifies a provider matches a contract; chaos verifies business logic survives faults.
Documentation
See the testing documentation for detailed guides.
License
This package is part of the Excalibur framework. See LICENSE for license details.
| Product | Versions 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. |
-
net10.0
- Ben.Demystifier (>= 0.4.1)
- BenchmarkDotNet (>= 0.15.8)
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Cronos (>= 0.12.0)
- Dapper (>= 2.1.72)
- Excalibur.Compliance (>= 10.0.0-alpha.8)
- Excalibur.Compliance.Abstractions (>= 10.0.0-alpha.8)
- Excalibur.Dispatch (>= 10.0.0-alpha.8)
- Excalibur.Dispatch.Abstractions (>= 10.0.0-alpha.8)
- Excalibur.Dispatch.Caching (>= 10.0.0-alpha.8)
- Excalibur.Dispatch.LeaderElection.Abstractions (>= 10.0.0-alpha.8)
- Excalibur.Dispatch.Patterns (>= 10.0.0-alpha.8)
- Excalibur.Dispatch.Transport.Abstractions (>= 10.0.0-alpha.8)
- Excalibur.Domain (>= 10.0.0-alpha.8)
- Excalibur.EventSourcing (>= 10.0.0-alpha.8)
- Excalibur.EventSourcing.Abstractions (>= 10.0.0-alpha.8)
- Excalibur.Jobs.Abstractions (>= 10.0.0-alpha.8)
- Excalibur.Saga (>= 10.0.0-alpha.8)
- Excalibur.Testing (>= 10.0.0-alpha.8)
- Excalibur.Workflows (>= 10.0.0-alpha.8)
- Excalibur.Workflows.Abstractions (>= 10.0.0-alpha.8)
- FluentValidation (>= 12.1.1)
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- IdentityModel (>= 7.0.0)
- JsonNet.ContractResolvers (>= 2.0.0)
- Medo.Uuid7 (>= 3.2.0)
- MemoryPack (>= 1.21.4)
- Microsoft.ApplicationInsights (>= 3.1.0)
- Microsoft.AspNetCore.Authorization (>= 10.0.7)
- Microsoft.CodeAnalysis.Analyzers (>= 5.3.0)
- Microsoft.CodeAnalysis.Common (>= 5.3.0)
- Microsoft.CodeAnalysis.CSharp (>= 5.3.0)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Caching.Hybrid (>= 10.5.0)
- Microsoft.Extensions.Caching.Memory (>= 10.0.10)
- Microsoft.Extensions.Caching.StackExchangeRedis (>= 10.0.10)
- Microsoft.Extensions.Configuration (>= 10.0.10)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.10)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.10)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.10)
- Microsoft.Extensions.Configuration.Json (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.10)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Http (>= 10.0.10)
- Microsoft.Extensions.Logging (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Console (>= 10.0.10)
- Microsoft.Extensions.ObjectPool (>= 10.0.10)
- Microsoft.Extensions.Options (>= 10.0.10)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.10)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.10)
- Microsoft.IdentityModel.Tokens (>= 8.17.0)
- MongoDB.Driver (>= 3.8.0)
- NCrontab (>= 3.4.0)
- Npgsql (>= 10.0.2)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Api (>= 1.15.3)
- OpenTelemetry.Extensions.Hosting (>= 1.15.3)
- Polly (>= 8.6.6)
- QuestPDF (>= 2026.2.4)
- SharpCompress (>= 0.48.0)
- Snappier (>= 1.3.1)
- StackExchange.Redis (>= 2.12.14)
- System.IdentityModel.Tokens.Jwt (>= 8.17.0)
- System.IO.Hashing (>= 10.0.7)
- System.Threading.RateLimiting (>= 10.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0-alpha.8 | 27 | 8/14/2026 |
| 10.0.0-alpha.7 | 31 | 8/13/2026 |
| 10.0.0-alpha.6 | 42 | 8/11/2026 |
| 10.0.0-alpha.5 | 46 | 8/10/2026 |
| 3.0.0-alpha.216 | 88 | 6/30/2026 |
| 3.0.0-alpha.215 | 75 | 6/23/2026 |
| 3.0.0-alpha.214 | 69 | 6/23/2026 |
| 3.0.0-alpha.208 | 78 | 6/11/2026 |
| 3.0.0-alpha.207 | 65 | 6/11/2026 |
| 3.0.0-alpha.205 | 67 | 6/10/2026 |
| 3.0.0-alpha.204 | 75 | 6/8/2026 |
| 3.0.0-alpha.203 | 62 | 6/8/2026 |
| 3.0.0-alpha.202 | 67 | 6/8/2026 |
| 3.0.0-alpha.201 | 66 | 6/8/2026 |
| 3.0.0-alpha.199 | 63 | 6/8/2026 |
| 3.0.0-alpha.198 | 77 | 5/28/2026 |
| 3.0.0-alpha.197 | 74 | 5/28/2026 |
| 3.0.0-alpha.194 | 69 | 5/20/2026 |
| 3.0.0-alpha.193 | 75 | 5/13/2026 |
| 3.0.0-alpha.192 | 64 | 5/13/2026 |
See CHANGELOG.md for release notes