Fork me on GitHub

The Powerunit framework

Main concepts

Powerunit is a unit test framework designed to be used with the JDK 1.8. It is inspired by the JUnit framework and syntax is very similar. from a high level perspective, the main difference are :

  • There is no concept of test runner, but the concept of parameterized test is integrated into the default system.
  • There is no before/after annotation, but the action around a test are defined by using one single rule chain.
  • Assertion syntax is more DSL oriented (only assertThat or similar assertion is available). The assertion system is strongly linked with hamcrest.
  • Some additional matcher are available to support new capabilities of the JDK 1.8, for instance the Optional class.
  • By default the system use a fast fail approach, but it is possible to switch to fail at end approach (since version 0.4.0).

Much more details are available in the javadoc of this project

Hosting

The source is hosted on git, as is the issue manager.

Maven integration

This framework is available in the maven central repo. It is be possible do use this framework as any maven dependency :

<dependency>
 <groupId>ch.powerunit</groupId>
 <artifactId>powerunit</artifactId>
 <scope>test</scope>
</dependency>

Integration with surefire is also possible. To do so, the dependency must also be added to the extension of the surefire plugin:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <dependencies>
    <dependency>
      <groupId>ch.powerunit</groupId>
      <artifactId>powerunit</artifactId>
    </dependency>
  </dependencies>
</plugin>

An artifact powerunit-with-dependencies is also available (starting with version 0.1.0); This one provides the same functionnalities, but with all the dependencies included inside the jar. This can be used in non-maven context.

Roadmap

Please refer to the release principles page for more information.

Version 0.0.1

The version 0.0.1 of this library is the first release.

Version 0.1.0

The 0.1.0 version covers parameter filtering, documentation issue and add a Main Class to run test (to be used by the initial implementation of the eclipse integration).

Version 0.2.0

The 0.2.0 version provides support for better eclipse integration and test framework.

Version 0.3.0

The 0.3.0 version provides additionnal support for tester (comparator, etc) and framework.