JUnit 5 came out in September 2017, and is recommended as the preferred JUnit version to use when working with Java 8+, it's also a highly requested feature of NetBeans users and so we need to start to outline how we provide support for JUnit 5 in Apache NetBeans (incubating).

Proposed Features

Provide JUnit 5.x library option

NetBeans allows users to add libraries to their projects via the Tools -> Libraries menu items.  We should include JUnit 5.x libraries into this as standard.  Note JUnit 5 is a departure from previous versions, as such we will need to include the following artefacts:

  • org.junit.platform:junit-platform-launcher:1.1.1:jar
  • org.junit.jupiter:junit-jupiter-engine:5.1.1:jar
  • org.junit.jupiter:junit-jupiter-api:5.1.1:jar
  • org.junit.jupiter:junit-jupiter-params:5.1.1:jar

These artefacts will allow a user to write both normal JUnit 5.x tests and Parameterized JUnit 5 tests in their projects.

JUnit 5.x Test Class Template

Include a Test class template into the IDE that can be used by users to create a blank JUnit 5.x unit test.

JUnit 5.x Test Suite Template

Currently, JUnit 5 doesn't support Jupiter Test Suites - https://github.com/junit-team/junit5/issues/744. For now, we can include a dialog so that when a user attempts to create a Test Suite for a JUnit 5 project we point out its not supported yet.

Maven Projects - Create/Update Dialog

For Projects that are using Java 8, and have no existing version of JUnit, we should create JUnit 5 test by default.

Maven Projects - Test File and Debug Test File actions

These actions should still work as before.

Maven Projects - Run/Debug Focussed Test Methods

Users should still be able to right-click a unit test method and be able to execute that specific test with surefire.  Note in JUnit 5.x tests can be annotated with: @Test, @ParamerizedTest, @RepeatedTest, any annotation that extends @Testable

Maven Projects - Test Results Dialog

The test results dialog for JUnit 5.x tests should be able to handle, normal tests, tests with custom display names, parameterised tests, etc.

Project Inspection & Transformation

Provide support for users to Inspect their projects and provide a transformation route between JUnit 4.x tests to JUnit 5.x.

  • No labels