A melting pot for all kinds of extensions to JUnit 5, particular to its Jupiter API.
Check out junit-pioneer.org, particularly the documentation section.
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.
JUnit Pioneer is released on GitHub, JCenter, and Maven Central. Coordinates:
For Maven:
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<version><!--...--></version>
<scope>test</scope>
</dependency>
For Gradle:
testCompile group: 'org.junit-pioneer', name: 'junit-pioneer', version: /*...*/
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! 🌞
- If you have an idea for an extension, open an issue and let's discuss.
- If you want to help but don't know how, have a look at the existing issues, particularly unassigned ones and those marked as up for grabs.
- If you want to have a chat about JUnit Pioneer, join our discord - we have a #junit-pioneer channel. 😊
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 CONTRIBUTING.md
for details on how they do that.
In lexicographic order, these are:
- 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.
- Nicolai Parlog aka nicolaiparlog
- 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 codefx.org. 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 their accomplishments here (in lexicographic order).
- Allon Murienik contributed the range sources (#44 / #123)
- Daniel Kraus contributed the system property extension (#129 / #133), further improved it as well as the environment variable extension (#180 / #248), and helped with build infrastructure (e.g. #269)
- Dirk Witzel improved the documentation (#149 / #271)
- Ignat Simonenko fixed a noteworthy bug in the default locale extension (#146 / #161)
- Mark Rösler contributed the environment variable extension (#167 / #174)
- Matthias Bünger opened, vetted, and groomed countless issues and PRs and contributed multiple refactorings (e.g. #165 / #168) and fixes (e.g. #190 / #200) before getting promoted to maintainer
- Mihály Verhás contributed the StdIO extension (#34 / #227), added tests to other extensions (#164 / #272), and commented on multiple issues and PRs
- Nishant Vashisth contributed an extension to disable parameterized tests by display name (#163 / #175)
- Simon Schrottner contributed to multiple issues and PRs and almost single-handedly revamped the build and QA process (e.g. #192 / #185) before getting promoted to maintainer
- Alex Panchenko fixed a noteworthy bug in the
TempDirectory
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
build.gradle
to Kotlin (#145)
- Benedikt Ritter contributed the default locale and time zone extensions (#103 / #104)
- Christian Stein introduced Shipkit-based continuous delivery (#87) and build scans (#124 / #132)
- Marc Philipp helped get the project back on track and contributed the
TempDirectory
extension (#39 / #69)