apache / apache/maven-surefire

[SUREFIRE-1405] Allow provider to override default runOrder & RunOrderCalculator from surefire-api

Open
#2,283 1 comment 0 reactions 0 assignees View on GitHub
enhancement priority:major
Dominant language
Java
Stars
461
Forks
588
Avg merge
1d 8h
Merged PRs (30d)
19

Description

**[Dipak Pawar](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=dipakpawar231)** opened **[SUREFIRE-1405](https://issues.apache.org/jira/browse/SUREFIRE-1405?redirect=false)** and commented

* Currently surefire supports "alphabetical", "reversealphabetical", "random", "hourly", "failedfirst", "balanced" and "filesystem" runOrder.
* All supported options are hardCoded in RunOrder - https://github.com/apache/maven-surefire/blob/master/surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrder.java#L109
* There is no way for user to add new runOrder in new provider implemented by him.
* Allow user to override/add new runOrder & RunOrderCalculator implementaion so surefire-api will dynamically load all supported runOrder & decide which RunOrderCalculator implementation to use for ordering test classes depending on provided runOrders.

---

**Remote Links:**
- [GitHub Pull Request #169
](https://github.com/apache/maven-surefire/pull/169)
- [GitHub Pull Request #169
](https://github.com/apache/maven-surefire/pull/169)

Contributor guide

Open the contributing guide

Research direction

Start with surefire-api/src/main/java/org/apache/maven/surefire/util/RunOrder.java at the hard-coded supported options, then review the provider and RunOrderCalculator integration. Read GitHub pull request #169 for prior work and context. Done means providers can add or override runOrder values and surefire-api dynamically selects the corresponding RunOrderCalculator.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.