apache / apache/maven-surefire

[SUREFIRE-2049] Upgrade Surefire Provider interface

Open
#3,132 0 comments 0 reactions 0 assignees View on GitHub
dependencies priority:major
Dominant language
Java
Stars
461
Forks
588
Avg merge
1d 8h
Merged PRs (30d)
19

Description

**[Tibor Digana](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=tibor17)** opened **[SUREFIRE-2049](https://issues.apache.org/jira/browse/SUREFIRE-2049?redirect=false)** and commented

The interface `SurefireProvider` has several drawbacks:

1. method `getSuites()` should be deleted and substituted by a negotiation mechanism between the plugin process and surefire forked process. TODO: analyse as-is-status in the `in-plugin` mode
2. method `invoke( Object forkTestSet )` has parameter of Java type Object. This should respect polymorphic approach.
3. analyse the impact of the method `cancel()`

---

**Issue Links:**
- [SUREFIRE-2073](https://issues.apache.org/jira/browse/SUREFIRE-2073) Test class filtering should be done in the particular fork JVM where the real test would run.
(_**"blocks"**_)
- [SUREFIRE-1560](https://issues.apache.org/jira/browse/SUREFIRE-1560) Rework SUREFIRE-1535. Use only FORKTESTSET and split SurefireProvider to two interfaces - currently has two responsibilities
(_**"is duplicated by"**_)

Contributor guide

Open the contributing guide

Research direction

Start by locating the SurefireProvider interface and its implementations, then read the in-plugin mode around the getSuites(), invoke(Object forkTestSet), and cancel() methods. Analyse the existing provider responsibilities and the impact of SUREFIRE-2073 and SUREFIRE-1560; done means agreeing on and implementing the revised interface and negotiation approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.