Skip to content

Implement fail-fast behavior for JUnit Platform provider - #3155

Merged
olamy merged 2 commits into
apache:masterfrom
marcphilipp:marc/junit-platform-fail-fast
Aug 12, 2025
Merged

olamy merged 2 commits into
apache:masterfrom
marcphilipp:marc/junit-platform-fail-fast

Conversation

@marcphilipp

@marcphilipp marcphilipp commented Jul 9, 2025 •

Copy link
Copy Markdown
Contributor

Resolves #2038.


Following this checklist to help us incorporate your
contribution quickly and easily:

  • Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Run mvn clean install to make sure basic checks pass. A more thorough check will
    be performed on your pull request automatically.
  • You have run the integration tests successfully (mvn -Prun-its clean install).

If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

@cstamas

cstamas commented Jul 9, 2025

Copy link
Copy Markdown
Member

Wow, cool! Thanks

@marcphilipp
marcphilipp marked this pull request as draft July 9, 2025 08:47
@marcphilipp

Copy link
Copy Markdown
Contributor Author

I've changed this PR to "draft" because it requires at least a milestone release of JUnit 6.0.0 to be merged. I've opened it early so I can address any feedback you might have.

@marcphilipp

Copy link
Copy Markdown
Contributor Author

Moreover, this PR supersedes #503

Comment on lines +35 to +36
static final Class<?> LAUNCHER_EXECUTION_REQUEST_CLASS = loadLauncherExecutionRequestClass();
static final Class<?> CANCELLATION_TOKEN_CLASS = loadCancellationTokenClass();
static final Supplier<CancellationTokenAdapter> CANCELLATION_TOKEN_FACTORY = createCancellationTokenFactory();
static final Method EXECUTE_METHOD_WITH_LAUNCHER_EXECUTION_REQUEST_PARAMETER =
findExecuteMethodWithLauncherExecutionRequestParameter();

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This class heavily relies on reflection to keep compatible with pre-6.x versions of JUnit

@sormuras

Copy link
Copy Markdown
Contributor

With JUnit 6 in play, testing with JDK 8 and 11 are out - as JDK 17 is the new minimum.

@marcphilipp

Copy link
Copy Markdown
Contributor Author

With JUnit 6 in play, testing with JDK 8 and 11 are out - as JDK 17 is the new minimum.

Done in 4221aca

@marcphilipp

Copy link
Copy Markdown
Contributor Author

@cstamas Could you please approve workflow execution? I think all tests should be green now. 🀞

@marcphilipp marcphilipp moved this from Todo to In Review in Sovereign Tech Fund Jul 18, 2025
@marcphilipp

Copy link
Copy Markdown
Contributor Author

One more time, please! 😬

@marcphilipp

Copy link
Copy Markdown
Contributor Author

The one remaining failure looks unrelated. Is that test known to be flaky? πŸ€”

@olamy

olamy commented Jul 19, 2025

Copy link
Copy Markdown
Member

Great! Thanks for this.

@marcphilipp

Copy link
Copy Markdown
Contributor Author

I'll update this PR early next week after which it should be ready to be merged.

@marcphilipp
marcphilipp force-pushed the marc/junit-platform-fail-fast branch 5 times, most recently from 5cb20ea to dd77018 Compare July 22, 2025 09:53
@marcphilipp
marcphilipp force-pushed the marc/junit-platform-fail-fast branch from dd77018 to d834468 Compare July 22, 2025 09:56
@marcphilipp
marcphilipp marked this pull request as ready for review July 22, 2025 09:57
@marcphilipp

Copy link
Copy Markdown
Contributor Author

I've rebased this PR to include the latest changes from the default branch and updated the integration test to use JUnit 6.0.0-M2. From my perspective, it's ready to be reviewed and then merged now.

@Bukama
Bukama requested review from olamy and slawekjaranowski July 22, 2025 10:02
@Bukama Bukama added the enhancement New feature or request label Jul 22, 2025
@marcphilipp

Copy link
Copy Markdown
Contributor Author

I pushed another commit that should fix the problem on JDK 17 and later

@olamy olamy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Thanks

@marcphilipp

Copy link
Copy Markdown
Contributor Author

@olamy Can this PR be merged?

@olamy
olamy merged commit 0fbfb27 into apache:master Aug 12, 2025
@github-project-automation github-project-automation Bot moved this from In Review to Done in Sovereign Tech Fund Aug 12, 2025
@github-actions github-actions Bot added this to the 3.5.4 milestone Aug 12, 2025
@olamy

olamy commented Aug 12, 2025

Copy link
Copy Markdown
Member

@olamy Can this PR be merged?

Sorry for delay and thanks a lot for the contribution

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SUREFIRE-1710] skipAfterFailureCount in JUnit5 provider

5 participants