Java Groovy
Clone or download

README.md

JUnit Pioneer

Latest Junit Pioneer on Maven Central Travis build status AppVeyor build status

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.

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, JCenter, and Maven Central. Coordinates:

  • group ID: org.junit-pioneer
  • artifact ID: junit-pioneer
  • version: Latest Junit Pioneer on Maven Central

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: /*...*/

Contributing

We welcome contributions of all shapes and forms! 🌞

Before contributing, please read the contribution guide.

Project Structure

Dependencies

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)

Code Style

There shall be no null - use Optional instead.:

  • design code to avoid optionality wherever feasibly possible
  • in all remaining cases, prefer Optional over null.