Repository navigation
Support test automation exclusions in Karate - #12945
calvinbayer wants to merge 1 commit into
Conversation
1bf4e92 to
e52670c
Compare
202e7f7 to
68b3c9f
Compare
e52670c to
7e03c1e
Compare
68b3c9f to
9fda4c1
Compare
CI Visibility Test Environment - sbt-scalatestJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - nebula-release-pluginJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - heliboardJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - netflix-zuulJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - pass4sJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - reactive-streams-jvmJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - sonar-kotlinJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - jolokiaJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - okhttpJob Status: 🔴 failed
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - spring_bootJob Status: 🔴 failed
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
CI Visibility Test Environment - sonar-javaJob Status: 🔴 failed
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
There was a problem hiding this comment.
More details
Both Karate adapters now pass scenario tags into exclusion-aware skip decisions, consistent with existing retry policy selection and reporting. The completed static review identified no actionable regressions.
🤖 Bits Code Review · Commit 9fda4c1
9fda4c1 to
1b32475
Compare
12e525a to
b3c227d
Compare
1b32475 to
b3d82b4
Compare
There was a problem hiding this comment.
TestNG can re-enable Datadog retries after an annotation transformer explicitly disables them, causing tests to execute repeatedly despite the framework override.
🤖 Bits Code Review · Commit 1b32475
Findings that could not be posted inline
dd-java-agent/instrumentation/testng/testng-common/src/main/java/datadog/trace/instrumentation/testng/TestNGUtils.java:78
Preserve transformer overrides that disable retries
When an unexcluded TestNG test's annotation transformer selects DisabledRetryAnalyzer, hasFrameworkOverride() is true, but the disabled-analyzer check falls through to installing Datadog's RetryAnalyzer. With ATR or EFD enabled, a test intended to run once can execute repeatedly. Previously, the user transformer's decision prevailed. Preserve explicit framework overrides separately from the default absence of a retry analyzer.
if (RetryAnnotationTransformer.hasFrameworkOverride(annotation)) {
return;
}
if (TestExclusions.noAutoRetry(source, Arrays.asList(method.getGroups()))) {
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it
What each reaction means
- 👍 Useful: correct, and you're fixing it or will.
- 👎 Wrong: the finding is incorrect, for example the bug can't happen or the code was misread.
- 😕 Unclear: you can't tell what it means or why it matters.
- 👀 Right, not acting: correct, but intended, out of scope for this PR, a known risk, or too minor.
🤖 Bits Code Review · Open Bits AI session
b3c227d to
01add0b
Compare
b3d82b4 to
2d52691
Compare
|
Addressed the finding in this review with the inherited fix d308a2b. The regression first reproduced the bug: an explicit DisabledRetryAnalyzer override still executed six times with TestNG 7.0 ATR, and five/three times with latest TestNG ATR/EFD. The transformer now preserves every explicit framework override before installing Datadog policy. The full configured suite passes 308 cases with 101 capability skips, plus Muzzle, forbidden-API and module checks. The supported scenarios execute exactly once and emit no retry metadata. |
|
@autotest Review |
There was a problem hiding this comment.
More details
Both Karate versions pass scenario tags into skip selection consistently with their existing execution-policy and reporting paths, preserving the metadata needed to honor exclusions and retain Test Management assignments.
🤖 Bits Code Review · Commit 2d52691
01add0b to
0313375
Compare
2d52691 to
2d3b70b
Compare
|
@autotest Review |
There was a problem hiding this comment.
More details
Both Karate integrations pass scenario tags into exclusion-aware skip selection, consistent with existing retry selection and reporting paths. The static review found no reportable defect.
🤖 Bits Code Review · Commit 2d3b70b
What Does This Do
Support test automation exclusions in Karate. Wire test declaration metadata into Datadog policy selection and reporting, preserving assigned Test Management properties.
Motivation
Allow individual tests to prevent Datadog quarantine/disabling and exclude Datadog ATR, EFD and Attempt to Fix. Developer selection and framework retries retain their existing semantics.
Additional Notes
Stacked on
codex/cucumber-automation-exclusions; review this PR against its base for the framework-specific change. Shared public API and policy are introduced by the first JUnit4 PR. No refactor commit was needed.Validation: Both Karate1 and Karate2 module spotlessApply and instrumented exclusion regressions passed on installed JDK21. Each protected scenario executes once with blocking failure, annotation tags and preserved assignment tags.
Snapshot dependency for inherited physical source paths: DataDog/test-environment#604.
test-environment-branch: codex/java-inherited-test-source-snapshots