This allows you to run Junit5 tests in parallel, you just need to specify the number of parallel threads as -DthreadCount= as runtime param.
It also allows you to re-run failed tests immediately. Very useful when your UI/API tests are not stable.
- Java 11
- Maven >3.0
- You can build the project with maven goals
clean install
In order to include junit5-framework in your Maven project, first add the following dependency to your pom.xml:
<dependency>
<groupId>io.github.nsingla</groupId>
<artifactId>junit5-framework</artifactId>
<version>2.1.1</version>
<scope>test</scope>
</dependency>And also add following repository to your pom:
<repositories>
<repository>
<id>ossrh</id>
<name>Central Repository OSSRH</name>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</repositories>Simply extend your test class with TestBase.java
/**
* This will enable your tests to run in parallel
*/
class YourTestClass extends TestBase {
}At runtime, provide how many times do you want the test to retry by -DretryCount=
/**
* Retry test if test failed.
*/
@RetryFailedTest
void runFailedTest() throws Exception {
throw new Exception("Test Failed");
}
/**
* Retry parameterized test
* @throws Exception - error occurred
*/
@RetryFailedParameterizedTest(name = "runFailedParameterizedTest-[{arguments}]")
void runFailedParameterizedTest(Argument arg1, Argument arg2) throws Exception {
throw new Exception("Parameterized Test Failed");
}
/**
* Retry parameterized test
* @throws Exception - error occurred
*/
@RetryFailedParameterizedTest(name = "runFailedParameterizedTest-[{0}-{1}]")
void runFailedParameterizedTest2(Argument arg1, Argument arg2) throws Exception {
throw new Exception("Parameterized Test Failed");
}