Wolfgang.Etl.TestKit.Xunit
0.23.4
Prefix Reserved
dotnet add package Wolfgang.Etl.TestKit.Xunit --version 0.23.4
NuGet\Install-Package Wolfgang.Etl.TestKit.Xunit -Version 0.23.4
<PackageReference Include="Wolfgang.Etl.TestKit.Xunit" Version="0.23.4" />
<PackageVersion Include="Wolfgang.Etl.TestKit.Xunit" Version="0.23.4" />
<PackageReference Include="Wolfgang.Etl.TestKit.Xunit" />
paket add Wolfgang.Etl.TestKit.Xunit --version 0.23.4
#r "nuget: Wolfgang.Etl.TestKit.Xunit, 0.23.4"
#:package Wolfgang.Etl.TestKit.Xunit@0.23.4
#addin nuget:?package=Wolfgang.Etl.TestKit.Xunit&version=0.23.4
#tool nuget:?package=Wolfgang.Etl.TestKit.Xunit&version=0.23.4
Wolfgang.Etl.TestKit.Xunit
xUnit contract-test base classes for components built on
Wolfgang.Etl.Abstractions. Inherit one
base class and your extractor / loader / transformer is verified against the full behavioural contract
of its base type — dozens of tests for free.
What it is
A set of abstract xUnit contract-test bases. Derive from the one matching your stage, implement a few small factory methods, and inherit the whole conformance suite:
| Base class | Verifies a … |
|---|---|
ExtractorBaseContractTests<TSut, TItem, TProgress> |
ExtractorBase implementation |
LoaderBaseContractTests<TSut, TItem, TProgress> |
LoaderBase implementation |
TransformerBaseContractTests<TSut, TItem, TProgress> |
TransformerBase implementation |
Additional contract bases cover cancellation, progress, disposal, per-item error handling, the retry seam, idempotency, and pipeline composition.
Usage
public class MyExtractorContractTests
: ExtractorBaseContractTests<MyExtractor, MyRecord, Report>
{
protected override MyExtractor CreateSut(int itemCount) =>
new MyExtractor(TestData.Take(itemCount));
protected override IReadOnlyList<MyRecord> CreateExpectedItems() =>
TestData;
}
Progress-timer behaviour is driven deterministically via ManualProgressTimerCore +
WithManualProgressTimer from Wolfgang.Etl.TestKit —
no per-component timer plumbing required.
Install
dotnet add package Wolfgang.Etl.TestKit.Xunit
Part of the ETL-Abstractions family — see the repository README for the full package set.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.Memory (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
- Wolfgang.Etl.Abstractions (>= 0.23.4)
- Wolfgang.Etl.TestKit (>= 0.23.4)
- xunit.abstractions (>= 2.0.3)
- xunit.assert (>= 2.9.3)
- xunit.core (>= 2.9.3)
-
.NETFramework 4.8.1
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.Memory (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
- Wolfgang.Etl.Abstractions (>= 0.23.4)
- Wolfgang.Etl.TestKit (>= 0.23.4)
- xunit.abstractions (>= 2.0.3)
- xunit.assert (>= 2.9.3)
- xunit.core (>= 2.9.3)
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.Memory (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
- Wolfgang.Etl.Abstractions (>= 0.23.4)
- Wolfgang.Etl.TestKit (>= 0.23.4)
- xunit.abstractions (>= 2.0.3)
- xunit.assert (>= 2.9.3)
- xunit.core (>= 2.9.3)
-
net10.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.Memory (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
- Wolfgang.Etl.Abstractions (>= 0.23.4)
- Wolfgang.Etl.TestKit (>= 0.23.4)
- xunit.abstractions (>= 2.0.3)
- xunit.assert (>= 2.9.3)
- xunit.core (>= 2.9.3)
-
net8.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.11)
- Microsoft.Bcl.Memory (>= 10.0.11)
- System.Linq.Async (>= 7.0.1)
- Wolfgang.Etl.Abstractions (>= 0.23.4)
- Wolfgang.Etl.TestKit (>= 0.23.4)
- xunit.abstractions (>= 2.0.3)
- xunit.assert (>= 2.9.3)
- xunit.core (>= 2.9.3)
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 |
|---|---|---|
| 0.23.4 | 491 | 8/29/2026 |
| 0.23.3 | 286 | 8/21/2026 |
| 0.23.2 | 628 | 8/18/2026 |
| 0.23.1 | 512 | 8/17/2026 |
| 0.23.0 | 299 | 8/15/2026 |
| 0.22.0 | 822 | 8/13/2026 |
| 0.14.0 | 1,225 | 8/3/2026 |
| 0.13.0 | 406 | 7/30/2026 |
| 0.12.0 | 239 | 7/29/2026 |
| 0.11.0 | 305 | 7/28/2026 |
| 0.10.1 | 219 | 7/27/2026 |
| 0.10.0 | 1,937 | 6/29/2026 |
| 0.9.0 | 1,042 | 6/25/2026 |
| 0.8.1 | 169 | 6/22/2026 |
| 0.8.0 | 1,453 | 4/27/2026 |
| 0.6.0 | 611 | 4/27/2026 |
| 0.5.0 | 3,005 | 3/16/2026 |