Need help with junit-pioneer?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

243 Stars 38 Forks Eclipse Public License 2.0 331 Commits 53 Opened issues


JUnit 5 Extension Pack

Services available


Need anything else?

Contributors list

JUnit Pioneer

Latest Junit Pioneer on Maven Central JUnit Pioneer build status

A melting pot for all kinds of extensions to JUnit 5, particular to its Jupiter API.

Check out, particularly the documentation section.

A Pioneer's Mission

JUnit Pioneer provides extensions for JUnit 5 and its Jupiter API. It does not limit itself to proven ideas with wide application but is purposely open to experiments. It aims to spin off successful and cohesive portions into sibling projects or back into the JUnit 5 code base.

To enable easy exchange of code with JUnit 5, JUnit Pioneer copies most of its infrastructure, from code style to build tool and configuration to continuous integration.

Getting on Board

JUnit Pioneer is released on GitHub and Maven Central. Coordinates:

  • group ID:
  • artifact ID:
  • version: Latest Junit Pioneer on Maven Central

For Maven:


For Gradle:

testCompile group: 'org.junit-pioneer', name: 'junit-pioneer', version: /*...*/


JUnit Pioneer is built against Java 8, but comes as a module (i.e. with a

) named org.junitpioneer. That means it can be used on all Java versions 8 and higher on class path and module path.

Pioneer does not only use JUnit 5's API, but also other artifacts from its ecosystem such as

. To avoid dependency issues (e.g. in junit-pioneer#343), you should add the JUnit 5 BOM (
) to your project instead of defining all dependency versions manually.

To not add to user's JAR hell, JUnit Pioneer is not taking on any runtime dependencies besides JUnit 5. Pioneer always depends on the lowest JUnit 5 version that supports its feature set, but that should not keep you from using 5's latest and greatest.

For our own infrastructure, we rely on the following compile and test dependencies:

  • JSR-305 (for static analysis)
  • AssertJ (assertions for our tests)
  • Mockito (mocking for our tests)
  • Log4J (to configure logging during test runs)
  • Jimfs (as an in-memory file system for our test)


We welcome contributions of all shapes and forms! 🌞

Before contributing, please read the contribution guide.


JUnit Pioneer is maintained by a small team of people who work on it in their free time - see
for details on how they do that. In lexicographic order, these are:

Daniel Kraus aka beatngu13
Banking software by day, OSS by night. Punk rock enthusiast and passionate hiker. Into Java, software testing, and web services. Tweets occasionally.
Matthias Bünger aka Bukama
(Always tries to become a better) Java developer, loves testing and reads tweets. Became a maintainer in April 2020 after he "caused" (authored) too many bishues.
Mihály Verhás aka Michael1993
Not so witty, not so pretty, not really mean, not really cool bean. A Hungarian Java developer who spends more time on Twitch than recommended by his doctors and used creative and diligent contributions to fool everyone into believing he is a decent enough guy to get promoted to maintainer (in November 2020).
Nicolai Parlog aka nipafx
Java enthusiast with a passion for learning and sharing. He does that in blog posts, articles, newsletters, and books; in tweets, repos, videos, and streams; at conferences and in-house trainings - more on all of that on That aside, he's best known for his head decor. He co-founded the project in November 2016 and has maintained it ever since (although often very negligently).
Simon Schrottner aka aepfli
Bearded guy in Lederhosen, who loves to code, and loves to explore code quality, testing, and other tools that can improve the live of a software craftsman. Passionated couchsurfer and hobby event planner. Maintainer since April 2020.
Steve Moyer aka smoyer64
Co-founded the project in November 2016.


JUnit Pioneer, as small as it is, would be much smaller without kind souls contributing their time, energy, and skills. Thank you for your efforts! 🙏

The least we can do is to thank them and list some of their accomplishments here (in lexicographic order).


  • Cory Thomas contributed the
    attribute in retrying tests (#408 / #430)
  • Daniel Kraus fixed bugs in the environment variable and system property extensions (#432 / #433, #448 / #449, and more), revamped their annotation handling (#460 / #485), and improved the build process (#482 / #483) before becoming a maintainer
  • John Lehne resolved an issue with the latest build status not showing correctly in (#530)
  • Slawomir Jaranowski Migrate to new Shipkit plugins (#410 / #419)
  • Stefano Cordio contributed the Cartesian Enum source (#379 / #409 and #414 / #453)
  • Jonathan Bluett-Duncan contributed a fix to
    which was failing when a
    directory did not contain a
    file (#532)



  • Alex Panchenko fixed a noteworthy bug in the
    extension (#140)
  • Christian Stein helped get the project back on track (yes, again, I told you Nicolai was negligent)
  • Daniel Kraus improved Shipkit integration (#148 / #151)
  • Marc Philipp helped get the project back on track and converted
    to Kotlin (#145)


We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.