Freedom251 › Test Flakiness Management Software
NonDex

What NonDex is
NonDex is a free, open-source tool for Java projects that looks for tests relying on one particular outcome from an API whose specification permits several. By exercising those allowed behaviors, it can help uncover flaky tests and assumptions that may cause portability problems across Java runtime environments. It supports JUnit and TestNG and offers Maven and Gradle plugins, along with command-line usage. When a test passes without shuffling but fails in shuffled runs, NonDex reports it and writes logs to a `.nondex` directory. Debug tasks provide reproduction arguments and diagnostic output, with a stack trace for an invocation point when it can identify one. Its supported API areas include collections, reflection, file listing, and locale- or time-related methods. The project lists Java 8–21, Maven 3.6+ with Surefire for Maven use, and Gradle 5.0+ for Gradle use. NonDex is available free of charge under an MIT license, which permits use, modification, distribution, and sale subject to its conditions; the software is supplied without warranty.
Who it suits
NonDex suits Java developers working with JUnit or TestNG who want to find tests that depend on implementation-specific behavior in under-determined APIs. It is especially relevant to projects using Maven or Gradle and targeting portability across Java runtime environments.
What it does well
- Free, MIT-licensed software.
- Supports JUnit and TestNG.
- Provides Maven and Gradle plugins.
- Can report flaky tests and log them in `.nondex`.
- Debug tasks provide reproduction arguments and diagnostic output.
What to know first
- Requires Java 8–21.
- Maven plugin requires Maven 3.6+ and Surefire.
- Gradle plugin requires Gradle 5.0+.
- MIT license provides the software without warranty.
Limits
NonDex is free. The listed requirements are Java 8–21, Maven 3.6+ with Surefire for Maven use, or Gradle 5.0+ for Gradle use.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| NonDex | MIT-licensed software · Java 8–21 · Maven 3.6+ with Surefire or Gradle 5.0+ | Free |
As github.com lists them, read 5 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the NonDex project on GitHub.
- Check that your setup uses Java 8–21.
- For Maven, use Maven 3.6+ with Surefire and configure the Maven plugin.
- For Gradle, use Gradle 5.0+ and configure the Gradle plugin.
- Alternatively, follow the command-line instructions; Java 9 and later need module-related options instead of the Java 8 boot class path option.
- On Linux or macOS, use the documented automatic Gradle setup script.
Verdict
Choose NonDex if you maintain Java tests and want to expose reliance on behaviors an API specification leaves open. Its free MIT-licensed distribution and Maven, Gradle, and command-line routes make it accessible, but it requires compatible Java and build-tool versions.
Questions
How much does NonDex cost?
The listed plan is free. NonDex is open source under an MIT license.
Which platforms does it support?
The listed platforms are Linux and macOS.
Which test frameworks does it support?
The listed frameworks are JUnit and TestNG.
What are the setup requirements?
The project lists Java 8–21. Maven use requires Maven 3.6+ and Surefire; Gradle use requires Gradle 5.0+.
Is NonDex open source?
Yes. The repository includes an MIT license permitting use, copying, modification, distribution, sublicensing, and sale subject to its conditions. It provides the software as-is without warranty.
What build and command-line setup options are available?
NonDex provides Maven and Gradle plugins and command-line instructions. For Java 9 and later, command-line setup requires module exports and patch-module options in place of the Java 8 boot class path option.
Facts from NonDex's own pages
- API coverage
- The supported API list includes collection and reflection APIs, file listing methods, and locale or time-related methods. · github.com, 5 Oct 2026
- Debugging
- Its debug tasks report reproduction arguments and debug output for flaky tests, including a stack trace for an invocation point when one can be identified. · github.com, 5 Oct 2026
- Installation
- The README shows plugin versions 2.2.1 for Maven and Gradle setup. · github.com, 5 Oct 2026
- Java compatibility note
- The README says Java 9 and later require replacing the Java 8 boot class path option with module exports and patch-module options for the command-line setup. · github.com, 5 Oct 2026
- License
- The repository includes an MIT license granting permission to use, copy, modify, distribute, sublicense, and sell the software, subject to its conditions. · github.com, 5 Oct 2026
- License warranty
- The MIT license provides the software as-is without warranty. · github.com, 5 Oct 2026
- Output
- NonDex reports tests that pass without shuffling but fail in shuffled runs and logs them in a .nondex directory. · github.com, 5 Oct 2026
- Platform setup
- The README describes an automatic Gradle setup script for Linux or macOS. · github.com, 5 Oct 2026
- Purpose
- NonDex detects and helps debug incorrect assumptions about under-determined Java APIs by exploring behaviors allowed by their specifications. · github.com, 5 Oct 2026
- Requirements
- The README lists Java 8–21 (Oracle JDK or OpenJDK), Maven 3.6+ and Surefire for the Maven plugin, and Gradle 5.0+ for the Gradle plugin. · github.com, 5 Oct 2026
- Test runners
- The project provides Maven and Gradle plugins, plus command-line usage instructions. · github.com, 5 Oct 2026
- Use case
- It can expose implementation-dependent flaky tests before assumptions cause portability bugs across Java runtime environments. · github.com, 5 Oct 2026
Where NonDex stands on Freedom251
- Test Flakiness Management Software#19 of 31