Skip to content

Conversation

@juan-fernandez
Copy link
Collaborator

@juan-fernandez juan-fernandez commented Oct 30, 2025

What does this PR do?

Add a new hook for lib/reporters/base.js to wrap generateSummary, and report tests that did not run, so did not go through the usual instrumentation.

Motivation

Playwright projects may have dependencies: https://playwright.dev/docs/test-projects#dependencies. If one of the dependencies fails, the project does not run. This causes the tests to not run at all. This means that our instrumentation does not kick in at all (no run test function whatsoever).

Reporters like JUnit are able to show these skipped tests, so it creates a discrepancy between our instrumentation and user experience with other test reports. This is confusing.

This PR adds instrumentation to the reporters' base class to grab tests that did not run at all.

Plugin Checklist

  • Integration tests.

@github-actions
Copy link

github-actions bot commented Oct 30, 2025

Overall package size

Self size: 13.16 MB
Deduped: 117.19 MB
No deduping: 119.4 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 10.3.0 | 20.73 MB | 20.74 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.12.0 | 11.19 MB | 11.57 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.4 | 2.95 MB | 5.82 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @opentelemetry/resources | 1.9.1 | 306.54 kB | 1.74 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api-logs | 0.207.0 | 201.39 kB | 1.42 MB | | @opentelemetry/api | 1.9.0 | 1.22 MB | 1.22 MB | | jsonpath-plus | 10.3.0 | 617.18 kB | 1.08 MB | | import-in-the-middle | 1.15.0 | 127.66 kB | 856.24 kB | | lru-cache | 10.4.3 | 804.3 kB | 804.3 kB | | @datadog/openfeature-node-server | 0.1.0-preview.12 | 95.11 kB | 401.68 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | source-map | 0.7.6 | 185.63 kB | 185.63 kB | | pprof-format | 2.2.1 | 163.06 kB | 163.06 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 7.0.5 | 63.38 kB | 63.38 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.3 | 23.74 kB | 23.74 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB | | escape-string-regexp | 5.0.0 | 3.66 kB | 3.66 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@datadog-datadog-prod-us1

This comment has been minimized.

@codecov
Copy link

codecov bot commented Oct 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.79%. Comparing base (1765861) to head (a7e1e91).
⚠️ Report is 7 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6797      +/-   ##
==========================================
- Coverage   84.05%   83.79%   -0.26%     
==========================================
  Files         506      506              
  Lines       21256    21270      +14     
==========================================
- Hits        17867    17824      -43     
- Misses       3389     3446      +57     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link

pr-commenter bot commented Oct 30, 2025

Benchmarks

Benchmark execution time: 2025-10-31 15:44:57

Comparing candidate commit a7e1e91 in PR branch juan-fernandez/report-did-not-run-tests-in-playwright with baseline commit 1765861 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1608 metrics, 62 unstable metrics.

@juan-fernandez juan-fernandez force-pushed the juan-fernandez/report-did-not-run-tests-in-playwright branch from 2030c53 to e8f199b Compare October 31, 2025 11:16
@juan-fernandez juan-fernandez changed the title [test optimization] [wip] Playwright: report tests that did not run [test optimization] Playwright: report tests that did not run Oct 31, 2025
@juan-fernandez juan-fernandez marked this pull request as ready for review October 31, 2025 11:48
@juan-fernandez juan-fernandez requested review from a team as code owners October 31, 2025 11:48
Copy link
Collaborator

@BridgeAR BridgeAR left a comment

Choose a reason for hiding this comment

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

LGTM % comment

Comment on lines 1266 to 1269
const didNotRunTests = this.suite.allTests().filter(test =>
test.outcome() === 'skipped' && (!test.results.length || test.expectedStatus !== 'skipped')
)
for (const test of didNotRunTests) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Could we not run the logic directly in the same loop? Do we have to filter first and create an intermediate array?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

sure

Comment on lines 1299 to 1300
}
if (reportersPackage.BaseReporter) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
}
if (reportersPackage.BaseReporter) {
} else if (reportersPackage.BaseReporter) {

@juan-fernandez juan-fernandez merged commit 40b1880 into master Oct 31, 2025
763 checks passed
@juan-fernandez juan-fernandez deleted the juan-fernandez/report-did-not-run-tests-in-playwright branch October 31, 2025 16:22
@dd-octo-sts dd-octo-sts bot mentioned this pull request Nov 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants