A TestNG-like data provider runner for JUnit with many additional features for parameterized testing.
junit-dataprovider is a library that extends JUnit with TestNG-like data provider functionality, allowing developers to run parameterized tests with multiple data sets. It solves the problem of repetitive test code by enabling data-driven testing patterns directly within JUnit, with additional features like custom method resolvers and Kotlin support.
Java and Kotlin developers writing unit tests with JUnit who need advanced parameterized testing capabilities, especially those migrating from TestNG or requiring data-driven test scenarios.
Developers choose junit-dataprovider because it seamlessly integrates with JUnit while providing richer data provider features than JUnit's built-in parameterized tests, including flexible syntax options, customization, and better compatibility with modern JVM ecosystems like Kotlin.
A TestNG like dataprovider runner for JUnit with many additional features
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports array, string, and iterable formats for defining test parameters, as highlighted in the Features section, enabling versatile data-driven test setups without rigid structures.
Allows custom data provider method resolvers, providing extensibility for locating and resolving test data methods beyond default conventions, as detailed in the Wiki.
Enables customization of generated test method names for better readability in reports, a feature explicitly mentioned under 'Customize test method name' in the README.
Fully supports Kotlin for modern JVM development, making it seamless for teams mixing Java and Kotlin codebases, as noted in the key features.
Migration guides from v1 to v2 and to JUnit5 indicate significant version incompatibilities, which can disrupt existing test suites and require manual updates.
Some features like @BeforeClass support are marked as JUnit4 only in the README, limiting functionality for teams fully on JUnit5 without workarounds.
Adds an extra library dependency compared to JUnit's built-in parameterized tests, increasing project complexity and potential version conflicts in dependency management.