Skip to content

Support test automation exclusion annotations in JUnit4 - #12940

Open
calvinbayer wants to merge 5 commits into
masterfrom
codex/junit4-automation-exclusions
Open

calvinbayer wants to merge 5 commits into
masterfrom
codex/junit4-automation-exclusions

Conversation

@calvinbayer

Copy link
Copy Markdown

What Does This Do

Add public @NoAutoRetry and @PreventFailureSuppression annotations and JUnit4 support. Protected tests run despite Datadog disabling, preserve blocking failures under quarantine, and can exclude ATR, EFD, and Attempt to Fix while retaining backend assignment tags.

Motivation

Let developers opt individual critical tests out of Datadog automation. Framework skips, TIA, parameterized source declarations, and explicit framework retries keep their normal semantics. Tag-based frameworks can use public TestAutomationExclusions constants.

Additional Notes

First PR in a per-framework Java stack; shared policy/API/reporting live here. No refactor commit was needed.

Validation: ./gradlew spotlessApply; focused existing ExecutionStrategyTest; new AutomationExclusionsTest; JUnit4 compile and instrumented JUnit4Test.test automation exclusions* all passed. The instrumented regression proves one execution, blocking failure, both annotation tags, retained disabled/quarantined/attempt-to-fix tags, and no attempt-to-fix completion tag.

@calvinbayer calvinbayer added type: feature Enhancements and improvements comp: ci visibility Continuous Integration Visibility tag: ai generated Largely based on code generated by an AI or LLM labels Oct 19, 2026
@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - sbt-scalatest

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 57.50 56.55 $\color{red}{\blacktriangle}$ +0.95 56.55 $\color{red}{\blacktriangle}$ +0.95 182/424
agentEvpProxy 57.24 n/a n/a n/a n/a -

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - nebula-release-plugin

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 38.36 37.15 $\color{red}{\blacktriangle}$ +1.21 37.15 $\color{red}{\blacktriangle}$ +1.21 92/225
agentless 37.28 37.15 $\color{red}{\blacktriangle}$ +0.13 37.15 $\color{red}{\blacktriangle}$ +0.13 92/198
agentlessCodeCoverage 46.34 46.30 $\color{red}{\blacktriangle}$ +0.04 45.38 $\color{red}{\blacktriangle}$ +0.96 92/197
agentlessLineCoverage 57.59 56.55 $\color{red}{\blacktriangle}$ +1.04 56.55 $\color{red}{\blacktriangle}$ +1.04 92/197

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@datadog-datadog-prod-us1-2

datadog-datadog-prod-us1-2 Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
• Patch Coverage: 77.78%
• Overall Coverage: 59.92% (+0.08%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 4c3a3ac | Docs | Give us feedback!

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - netflix-zuul

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 90.35 89.58 $\color{red}{\blacktriangle}$ +0.77 89.58 $\color{red}{\blacktriangle}$ +0.77 92/226
agentless 82.91 82.69 $\color{red}{\blacktriangle}$ +0.22 82.69 $\color{red}{\blacktriangle}$ +0.22 92/197
agentlessCodeCoverage 97.05 97.04 $\color{red}{\blacktriangle}$ +0.01 97.04 $\color{red}{\blacktriangle}$ +0.01 92/197
agentlessLineCoverage 112.11 113.88 $\color{green}{\blacktriangledown}$ -1.77 113.88 $\color{green}{\blacktriangledown}$ -1.77 93/198

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - reactive-streams-jvm

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 22.01 22.54 $\color{green}{\blacktriangledown}$ -0.53 22.54 $\color{green}{\blacktriangledown}$ -0.53 123/258
agentless 18.29 19.59 $\color{green}{\blacktriangledown}$ -1.30 19.59 $\color{green}{\blacktriangledown}$ -1.30 118/221
agentlessCodeCoverage 19.57 20.39 $\color{green}{\blacktriangledown}$ -0.82 20.39 $\color{green}{\blacktriangledown}$ -0.82 119/222
agentlessLineCoverage 26.41 27.52 $\color{green}{\blacktriangledown}$ -1.11 27.52 $\color{green}{\blacktriangledown}$ -1.11 81/156

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - pass4s

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 13.51 10.54 $\color{red}{\blacktriangle}$ +2.97 10.33 $\color{red}{\blacktriangle}$ +3.18 93/225
agentless 8.44 9.92 $\color{green}{\blacktriangledown}$ -1.48 9.92 $\color{green}{\blacktriangledown}$ -1.48 92/195
agentlessCodeCoverage 18.34 17.38 $\color{red}{\blacktriangle}$ +0.96 17.73 $\color{red}{\blacktriangle}$ +0.61 83/179

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - heliboard

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 7.70 9.73 $\color{green}{\blacktriangledown}$ -2.03 9.92 $\color{green}{\blacktriangledown}$ -2.22 90/195

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - sonar-kotlin

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 13.14 13.67 $\color{green}{\blacktriangledown}$ -0.53 13.40 $\color{green}{\blacktriangledown}$ -0.26 104/239
agentless 10.75 12.37 $\color{green}{\blacktriangledown}$ -1.62 12.37 $\color{green}{\blacktriangledown}$ -1.62 104/209
agentlessCodeCoverage 14.12 15.72 $\color{green}{\blacktriangledown}$ -1.60 15.72 $\color{green}{\blacktriangledown}$ -1.60 104/209
agentlessLineCoverage 16.66 17.38 $\color{green}{\blacktriangledown}$ -0.72 17.73 $\color{green}{\blacktriangledown}$ -1.07 103/209

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - jolokia

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 99.30 97.04 $\color{red}{\blacktriangle}$ +2.26 95.12 $\color{red}{\blacktriangle}$ +4.18 107/241
agentless 93.50 91.39 $\color{red}{\blacktriangle}$ +2.11 91.39 $\color{red}{\blacktriangle}$ +2.11 107/213
agentlessCodeCoverage 103.05 101.00 $\color{red}{\blacktriangle}$ +2.05 99.00 $\color{red}{\blacktriangle}$ +4.05 107/213
agentlessLineCoverage 103.64 103.04 $\color{red}{\blacktriangle}$ +0.60 101.00 $\color{red}{\blacktriangle}$ +2.64 120/232

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - okhttp

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 18.61 18.82 $\color{green}{\blacktriangledown}$ -0.21 19.59 $\color{green}{\blacktriangledown}$ -0.98 107/240
agentless 18.24 18.45 $\color{green}{\blacktriangledown}$ -0.21 19.20 $\color{green}{\blacktriangledown}$ -0.96 106/215
agentlessCodeCoverage 21.33 21.65 $\color{green}{\blacktriangledown}$ -0.32 22.54 $\color{green}{\blacktriangledown}$ -1.21 108/219
agentlessLineCoverage 36.51 37.91 $\color{green}{\blacktriangledown}$ -1.40 38.67 $\color{green}{\blacktriangledown}$ -2.16 105/213

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@dd-octo-sts

dd-octo-sts Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.75 s 14.60 s [+0.2%; +1.9%] (maybe worse)
startup:insecure-bank:tracing:Agent 13.67 s 13.65 s [-0.6%; +1.0%] (no difference)
startup:petclinic:appsec:Agent 17.65 s 17.51 s [-0.3%; +1.9%] (no difference)
startup:petclinic:iast:Agent 16.77 s 17.49 s [-8.2%; -0.0%] (maybe better)
startup:petclinic:profiling:Agent 17.32 s 17.27 s [-0.9%; +1.5%] (no difference)
startup:petclinic:sca:Agent 17.60 s 17.03 s [-0.8%; +7.6%] (no difference)
startup:petclinic:tracing:Agent 16.57 s 16.70 s [-1.8%; +0.3%] (no difference)

Commit: 4c3a3ace · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - spring_boot

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 16.24 16.36 $\color{green}{\blacktriangledown}$ -0.12 16.36 $\color{green}{\blacktriangledown}$ -0.12 104/237
agentless 10.05 9.92 $\color{red}{\blacktriangle}$ +0.13 9.92 $\color{red}{\blacktriangle}$ +0.13 104/209
agentlessCodeCoverage 13.48 13.94 $\color{green}{\blacktriangledown}$ -0.46 13.67 $\color{green}{\blacktriangledown}$ -0.19 104/211
agentlessLineCoverage 23.69 22.99 $\color{red}{\blacktriangle}$ +0.70 22.54 $\color{red}{\blacktriangle}$ +1.15 103/208

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@cit-pr-commenter-54b7da

cit-pr-commenter-54b7da Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

CI Visibility Test Environment - sonar-java

Job Status: 🟢 success

Scenario This PR (%) 7d median Δ 7d 30d median Δ 30d runs (7d/30d)
agent 52.19 14.51 $\color{red}{\blacktriangle}$ +37.68 14.23 $\color{red}{\blacktriangle}$ +37.96 104/237
agentless 16.37 12.37 $\color{red}{\blacktriangle}$ +4.00 12.87 $\color{red}{\blacktriangle}$ +3.50 104/211
agentlessCodeCoverage 85.47 84.36 $\color{red}{\blacktriangle}$ +1.11 81.05 $\color{red}{\blacktriangle}$ +4.42 104/211
agentlessLineCoverage 170.92 120.92 $\color{red}{\blacktriangle}$ +50.00 123.36 $\color{red}{\blacktriangle}$ +47.56 101/209

Baseline: median of @test.tracer_overhead on main (gitlab) over the last 7/30 days, per OSS project & scenario. Δ = this PR − baseline median; red ▲ = more overhead, green ▽ = less overhead than baseline.

Tests run to verify that CI Visibility behavior has not regressed in the current PR.

@calvinbayer
calvinbayer marked this pull request as ready for review October 19, 2026 22:10
@calvinbayer
calvinbayer requested review from a team as code owners October 19, 2026 22:10
@calvinbayer
calvinbayer requested review from PerfectSlayer and ygree and removed request for a team October 19, 2026 22:10
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T22:13:14.139699Z 193ac29 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@datadog-datadog-prod-us1-2 datadog-datadog-prod-us1-2 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Bits Code Review: FAIL

Protected JUnit4 tests forced to run by TIA’s unskippable category can lose their forced-run tag and metric because reporting ignores the new exclusions.

Open Bits AI session

🤖 Bits Code Review · Commit 193ac29

@calvinbayer
calvinbayer force-pushed the codex/junit4-automation-exclusions branch from 8939084 to 8028762 Compare October 20, 2026 08:09
@calvinbayer

Copy link
Copy Markdown
Author

@autotest Review

@datadog-datadog-prod-us1-2 datadog-datadog-prod-us1-2 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Bits Code Review: PASS

More details

Source and test inspection support that protected JUnit4 tests retain blocking failures and backend assignment tags while preserving framework-owned skips and retries.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 8028762

@calvinbayer
calvinbayer force-pushed the codex/junit4-automation-exclusions branch from 8028762 to 4c3a3ac Compare October 20, 2026 18:52
@calvinbayer

Copy link
Copy Markdown
Author

@autotest Review

@datadog-datadog-prod-us1-2 datadog-datadog-prod-us1-2 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Bits Code Review: PASS

More details

Static review found no reportable issue with preserving JUnit4 skip semantics or separating backend assignment tags from excluded automation. Runtime behavior remains unverified because tests were not run.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 4c3a3ac

@ygree ygree left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can a test annotated with @PreventFailureSuppression pass after an automatic retry when used without @NoAutoRetry? If so, @NoQuarantineOrDisable might be a clearer name since it better describes the prevented behaviors.

@ygree ygree left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

IDM approved

@calvinbayer

Copy link
Copy Markdown
Author

@ygree Yes. With @PreventFailureSuppression alone, an ATR-eligible test can fail and then pass on an automatic retry. The annotation overrides Datadog disabling and quarantine; @NoAutoRetry independently disables Datadog retries, EFD and Attempt to Fix. With ATR, failure on the final attempt still blocks.

The policy selection keeps these controls independent. Your naming suggestion makes that distinction clearer; I’ll leave the API rename open for discussion.

@daniel-mohedano daniel-mohedano left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

left some comments and nits, but overall it's looking good, thanks for taking care of these changes 👍

Comment on lines 128 to 129
@Override
public SkipReason skipReason(TestIdentifier test) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The changes moved over the @Nullable here:

Suggested change
@Override
public SkipReason skipReason(TestIdentifier test) {
@Nullable
@Override
public SkipReason skipReason(TestIdentifier test) {

Comment on lines 113 to 114
@Override
public SkipReason skipReason(TestIdentifier test) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same as in Proxy

Suggested change
@Override
public SkipReason skipReason(TestIdentifier test) {
@Nullable
@Override
public SkipReason skipReason(TestIdentifier test) {

default SkipReason skipReason(
TestIdentifier test, TestSourceData source, Collection<String> tags) {
return skipReason(test);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Both Proxy and Headless already implement the method so we can make it abstract and also add back the @Nullable.

Suggested change
}
@Nullable
SkipReason skipReason(
TestIdentifier test, TestSourceData source, Collection<String> tags);

Comment on lines +191 to +196
if (TestExclusions.noAutoRetry(testSourceData, categories)) {
test.setTag("test.test_management.no_auto_retry", true);
}
if (TestExclusions.preventFailureSuppression(testSourceData, categories)) {
test.setTag("test.test_management.prevent_failure_suppression", true);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Let's add both new tags to datadog.trace.bootstrap.instrumentation.api.Tags

Comment on lines 374 to 375
@Override
public SkipReason skipReason(TestIdentifier test) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The override is missing the @Nullable here too

Suggested change
@Override
public SkipReason skipReason(TestIdentifier test) {
@Nullable
@Override
public SkipReason skipReason(TestIdentifier test) {

Comment on lines +1 to +3
# Test automation exclusions

Use the `dd-trace-api` artifact to declare test-local Datadog policy exclusions.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think we only hold developer documentation in docs/, so I'd be inclined to remove this doc and explain the behavior of each annotation in its Javadoc. That way, customers using the public API also have all the context through the annotation.

@@ -0,0 +1,38 @@
package datadog.trace.api.civisibility.config;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: i'd put this under datadog.trace.api.civisibility.execution instead

import java.util.Collection;

/** Resolves test-local declarations without retaining application classes between runs. */
public final class TestExclusions {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If we end up removing the public API class, i'd be inclined to rename this to TestAutomationExclusion.

Also, to avoid building the Strings constantly, I think we could make this work with an enum, something like:

public enum TestAutomationExclusion {
  NO_AUTO_RETRY(NoAutoRetry.TAG, NoAutoRetry.class.getName()),
  PREVENT_FAILURE_SUPPRESSION(PreventFailureSuppression.TAG, PreventFailureSuppression.class.getName());

  private final String tag;
  private final String annotationName;

  TestAutomationExclusion(String tag, String annotationName) {
    this.tag = tag;
    this.annotationName = annotationName;
  }

  public boolean isDeclared(@Nonnull TestSourceData source, @Nullable Collection<String> tags) {
    ...
  }
  ...
}

The call sites would end up looking something like:

if (isAttemptToFix(test) && !NO_AUTO_RETRY.isDeclared(source, tags)) {
  return null;
}

Comment on lines +28 to +31
if (annotation
.annotationType()
.getName()
.equals("datadog.trace.api.civisibility." + annotationName)) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

why do we need this name-matching instead of checking for the actual annotation? In TestEventsHandlerImpl we already check for annotations with a class literal.

  private static boolean skipTrace(final Class<?> testClass) {
    return testClass != null && testClass.getAnnotation(DisableTestTrace.class) != null;
  }

Should this be updated too?

@Nullable
SkipReason skipReason(TestIdentifier test);

default SkipReason skipReason(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I'd argue for removing the default and making it abstract, plus implementing the method in NoOpTestEventsHandler, so it's easier to follow the logic. We should also add the @Nullable back

Suggested change
default SkipReason skipReason(
@Nullable
SkipReason skipReason(

This branch has not been deployed

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

Labels

comp: ci visibility Continuous Integration Visibility tag: ai generated Largely based on code generated by an AI or LLM type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants