CsabaDu.DynamicTestData.xUnit 2.0.0-beta

This is a prerelease version of CsabaDu.DynamicTestData.xUnit.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package CsabaDu.DynamicTestData.xUnit --version 2.0.0-beta
                    
NuGet\Install-Package CsabaDu.DynamicTestData.xUnit -Version 2.0.0-beta
                    
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="CsabaDu.DynamicTestData.xUnit" Version="2.0.0-beta" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CsabaDu.DynamicTestData.xUnit" Version="2.0.0-beta" />
                    
Directory.Packages.props
<PackageReference Include="CsabaDu.DynamicTestData.xUnit" />
                    
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 CsabaDu.DynamicTestData.xUnit --version 2.0.0-beta
                    
#r "nuget: CsabaDu.DynamicTestData.xUnit, 2.0.0-beta"
                    
#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 CsabaDu.DynamicTestData.xUnit@2.0.0-beta
                    
#: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=CsabaDu.DynamicTestData.xUnit&version=2.0.0-beta&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=CsabaDu.DynamicTestData.xUnit&version=2.0.0-beta&prerelease
                    
Install as a Cake Tool

CsabaDu.DynamicTestData.xUnit

🎯 An extension of CsabaDu.DynamicTestData framework to facilitate dynamic data-driven testing in xUnit.

  • ⚙️ Test data conversion, management and provisioning
  • ⛑️ Type-safe and thread-safe support for xUnit
  • 🧩 Modular design, abstractions and ready-to-use integrations
  • 💼 Portable data sources
  • 📋 Traceable descriptive display names
  • 💵 Now seeking sponsors to complete v2.0 – comprehensive testing, documentation, examples, and new features!

Sponsor this project Buy me a coffee Support Me a Ko-fi OpenCollective


Documentation

This README and the dedicated Wiki for the CsabaDu.DynamicTestData.xUnit extension are currently under development. While full documentation is in progress, you can already find essential information and usage guidance.

To learn more about the core framework, visit the CsabaDu.DynamicTestData package on NuGet and explore its main Wiki.

For an overview of this xUnit-specific extension—including its purpose, integration points, and sample usage—see the Extensibility & Ready-to-Use Implementations section.


Version 2.0.0-beta Foreword

The CsabaDu.DynamicTestData.xUnit framework has undergone a major transformation in version 2.0.0-beta, introducing a wide range of enhancements while preserving its original foundation.

This release introduces powerful new capabilities:

  • Test data conversion to any type of test data row
  • Data row management for structured and reusable test inputs
  • Flexible data provisioning to test methods across frameworks

These features make the framework easier to use, more adaptable to diverse testing needs, and better suited for integration with MSTest, xUnit, xUnit, and beyond. The newly introduced interfaces and abstract classes are designed for extensibility, allowing developers to support custom types and framework-specific features while staying aligned with the CsabaDu.DynamicTestData ecosystem.

The architecture is clean, the codebase is modular, and many features have been partially tested. The documentation provides detailed insights into the design, types, and usage patterns. However, this version is still considered beta due to:

  • Incomplete test coverage
  • Missing documentation sections (e.g., migration guide from v1.x.x)

Final Notes

This version is beta, meaning:

  • Features are stable but may change
  • Some features are only partially tested
  • Documentation is detailed, but incomplete
  • Feedback and support is highly appreciated

Changelog

Version 2.0.0-beta (2025-09-01)

This is a beta release introducing breaking changes, new features, and architectural enhancements to the CsabaDu.DynamicTestData.xUnit library. These updates improve usability, flexibility, and extensibility.

  • Cancelled:
    • DynamicDataSources namespace:
      • DynamicTheoryDataSource abstract class
  • Added:
    • DataRowHolders.Interfaces namespace:
      • ITheoryTestData interface
      • ITheoryTestData<TTestData> interface
    • DataRowHolders namespace:
      • TheoryTestData abstract class
      • TheoryTestData<TTestData> sealed class
    • DynamicDataSources namespace:
      • DynamicTheoryDataHolder abstract class
      • DynamicTheoryTestDataHolder abstract class
    • Attributes namespace:
      • MemberTestDataAttributeBase abstract class
      • MemberTestDataAttribute sealed class

Version 1.0.0 (2025-03-20)

  • Initial release of the CsabaDu.DynamicTestData.xUnit framework, which is a child of CsabaDu.DynamicTestData framework.
  • Includes the DynamicTheoryDataSource base class.
  • Provides support for dynamic data-driven tests with TheoryData arguments having different data, expected struct results, and exceptions, on top of the inherited CsabaDu.DynamicTestData features.

Version 1.1.0 (2025-04-01)

  • Added: AddOptional method added to the DynamicTheoryDataSource class.
  • Note: This update is backward-compatible with previous versions.

Version 1.1.1 (2025-04-02)
  • Updated:
    • README.md How it Works - Abstract DynamicTheoryDataSource Class section updated with CheckedTheoryData method explanation.
    • README.md Added explanation how TheoryData property and ResetTheoryData method work.
    • Small README.md corrections and visual refactorings.

Contributing

Contributions are welcome! Please submit a pull request or open an issue if you have any suggestions or bug reports.


License

This project is licensed under the MIT License. See the License file for details.


Contact

For any questions or inquiries, please contact CsabaDu.


FAQ


Troubleshooting

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  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 was computed.  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

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
2.0.1-beta 133 9/4/2025
2.0.0-beta 124 9/1/2025
1.1.1 189 4/2/2025
1.1.0 161 4/1/2025
1.0.1 131 3/21/2025
1.0.0 153 3/20/2025

This is a beta release introducing breaking changes, new features, and architectural enhancements to the `CsabaDu.DynamicTestData.xUnit` library. These updates improve usability, flexibility, and extensibility.