The source code of JUnit 5 is hosted on GitHub (https://github.com/junit-team/junit5). All modules of the JUnit 5 framework have been released under the terms of the open source license EPL v1.0. There is one exception to this rule, since the module called junit-platform-surefire-provider (described later) has been released using Apache License v2.0.
The roadmap of the JUnit development (https://github.com/junit-team/junit5/wiki/Roadmap) and the definition and status of the different releases and milestones (https://github.com/junit-team/junit5/milestones/) are public on GitHub. The following table summarizes this roadmap:
Phase | Date | Release |
0. Crowdfunding |
From July 2015 to October 2015 |
- |
1. Kick off |
From October 20 to 22, 2015 |
- |
2. First prototype |
From October 23, 2015 to the end of November 2015 |
- |
3. Alpha version |
February 1, 2016 |
5.0 Alpha |
4. First milestone |
July 9, 2016 |
5.0 M1: Stable, documented IDE-facing APIs (Launcher API and Engine SPI), dynamic tests |
5. Additional milestones |
July 23, 2016 (5.0 M2) November 30, 2016 (5.0 M3) April 1, 2017 (5.0 M4) July 5, 2017 (5.0 M5) July 16, 2017 (5.0 M6) |
5.0 M2: Bugfix and minor improvement release 5.0 M3: JUnit 4 interoperability, additional discovery selectors 5.0 M4: Test templates, repeated tests, and parameterized tests 5.0 M5: Dynamic containers and minor API changes 5.0 M6: Java 9 compatibility, scenario tests, additional extension APIs for JUnit Jupiter |
6. Release candidate (RC) |
July 30, 2017 July 30, 2017 August 23, 2017 |
5.0 RC1: Final bug fixes and documentation improvements 5.0 RC2: Fix Gradle consumption of junit-jupiter-engine 5.0 RC3: Configuration parameters and bug fixes |
7. General availability (GA) |
September 10, 2017 |
5.0 GA: First stable release |
The JUnit 5 contributors are more than just developers. Contributors are also testers, maintainers, and communicators. At the time of writing, the top JUnit 5 contributors on GitHub are:
- Sam Brannen (@sam_brannen): Core Spring Framework and JUnit 5 committer. Enterprise Java Consultant at Swiftmind. Spring & JUnit trainer. Conference speaker.
- Marc Philipp (@marcphilipp): Senior Software Engineer on LogMeIn, active contributor to open source projects such as JUnit or Usus. Conference speaker.
- Johannes Link (@johanneslink): Programmer and software therapist. JUnit 5 supporter.
- Matthias Merdes: Lead Developer at Heidelberg Mobil GmbH, Germany.
The following list provides a collection of online JUnit 5 resources:
- Official website (http://junit.org/junit5/).
- Source code (https://github.com/junit-team/junit5/).
- JUnit 5 developer guide (http://junit.org/junit5/docs/current/user-guide/). Reference documentation.
- Twitter of the JUnit team (https://twitter.com/junitteam). Usually, the tweets about JUnit 5 are tagged with #JUnit5 (https://twitter.com/hashtag/JUnit5).
- Issues (https://github.com/junit-team/junit5/issues). Problems or suggestions for additional functionality on GitHub.
- Questions on Stack Overflow (https://stackoverflow.com/questions/tagged/junit5). Stack Overflow is a popular question-and-answer website for computer programming. The tag junit5 should be used to ask questions about JUnit 5.
- JUnit 5 JavaDoc (http://junit.org/junit5/docs/current/api/).
- JUnit 5 Gitter (https://gitter.im/junit-team/junit5), an instant messaging and chat room system used to discuss directly with the JUnit 5 team members and other practitioners.
- Open Test Alliance for the JVM (https://github.com/ota4j-team/opentest4j). It is an initiative started by the JUnit 5 team, and its objective is to provide a minimal common foundation for testing libraries (JUnit, TestNG, Spock, and so on) and third-party assertion libraries (Hamcrest, AssertJ, and so on) on the JVM. The idea is to use a common set of exceptions that IDEs and build tools can support in a consistent manner across all testing scenarios (so far there is no standard for testing on the JVM, and the only common building block is the Java exception java.lang.AssertionError).