1226 Commits

Author SHA1 Message Date
Pavel Feldman
08d6abab4a
chore: allow merging defineConfig (#26390) 2023-08-09 17:23:34 -07:00
Dmitry Gozman
cadc3153f7
fix(test runner): failed + skipped = flaky (#26385)
Fixes #17652.
2023-08-09 16:35:14 -07:00
Andrey Lushnikov
a61431f6bb
chore: cut 1.37.0 branch (#26357) 2023-08-09 01:46:29 -07:00
Andrey Lushnikov
ffd6cf60eb
fix: eliminate race in compilation cache (#26353)
Fixes https://github.com/microsoft/playwright/issues/24569
2023-08-08 15:09:20 -07:00
Yury Semikhatsky
bc2c7946bb
fix: do not throw when merging into blob report (#26355)
We cannot import a Symbol to isomorphic code from config. Instead,
__projectId property is used.
2023-08-08 14:47:12 -07:00
Yury Semikhatsky
8fcb6383ce
chore(blob): store playwright user agent (#26337) 2023-08-08 10:39:48 -07:00
Yury Semikhatsky
0e20d352cf
chore(merge): read test events from one file at a time (#26333)
Reference https://github.com/microsoft/playwright/issues/24451
2023-08-07 17:39:32 -07:00
Yury Semikhatsky
7f1f62795d
chore(blob): add dash to report name (#26335)
This regressed in #25017
2023-08-07 17:22:31 -07:00
Dmitry Gozman
90c765d31c
chore(blob): split onBegin into multiple onProject events (#26329) 2023-08-07 14:33:18 -07:00
Dmitry Gozman
27c15b705d
fix(blob): replace projectSuffix with reportName (#25017)
Always ensure unique project/test ids across blobs.
Show `reportName` as a label in the html report.

References #24451.
2023-08-07 13:38:09 -07:00
Max Schmitt
1383844af8
docs: make --grep more clear (#26324)
Fixes https://github.com/microsoft/playwright/issues/24604
2023-08-07 17:40:30 +02:00
Andrey Lushnikov
fa8f3f6454
fix: use snapshotPath instead of expectedPath for image diffs (#24567)
This opens a road to the "accept new screenshot" button in
Playwright tools.

References https://github.com/microsoft/playwright/issues/24310
2023-08-07 04:42:35 -07:00
Marcin Strzyz
53fd4bedb4
chore: ensure the file operations are async in the junit reporter (#24577) 2023-08-07 10:03:01 +02:00
Yury Semikhatsky
f1f43c9ad1
chore(merger): internalize json strings after parse (#25801)
Reference: https://github.com/microsoft/playwright/issues/24451
2023-08-05 13:17:39 -07:00
Pavel Feldman
414a4c3ef0
chore: pass color through in web server commands (#24619) 2023-08-05 09:01:27 -07:00
Yury Semikhatsky
6c3142959d
fix(blob): store startTime as a number (#24620)
Turns out the Date objects have noticeable footprint on large suites and
storing them as umber is much cheaper, e.g.:


![image](https://github.com/microsoft/playwright/assets/9798949/539028d0-3ef8-46f7-be2b-752f24604d18)
2023-08-04 16:06:23 -07:00
Yury Semikhatsky
d62493f925
chore: intern test ids and abs paths (#24618)
Created named classes for TeleTestStep and TeleTestResult which makes it
easier to analyze in heap snapshot. Also changing `titlePath` from a
closure to a method on TeleTestStep saved ~100Mb out of 2300Mb.

Intern test ids and absolute paths which showed up a lot of duplicate
strings in heap snapshot.

Clear stepMap after processing onTestEnd.
2023-08-04 14:10:06 -07:00
Pavel Feldman
8fde110c61
chore: allow web server w/o waiting (#24609) 2023-08-04 12:05:16 -07:00
Pavel Feldman
b3ce913551
Revert "chore: allow calling spawnSync on Node.js file inside test" (#24611)
Reverts microsoft/playwright#24539
2023-08-04 09:01:38 -07:00
Yury Semikhatsky
9575867f1c
fix(blob): throw if blob report has newer version than the merger (#24593) 2023-08-03 15:11:34 -07:00
Max Schmitt
2193903d03
chore: allow calling spawnSync on Node.js file inside test (#24539)
Fixes https://github.com/microsoft/playwright/issues/24516 

Relates https://github.com/microsoft/playwright/pull/16733
2023-08-04 00:03:14 +02:00
Yury Semikhatsky
8e2f33673b
chore(blob): change file name to report{-suffix}{-shard}.zip (#24592) 2023-08-03 13:23:30 -07:00
Yury Semikhatsky
a867e738db
chore(merge): console status updates (#24559) 2023-08-02 14:49:06 -07:00
Max Schmitt
b0473b71cd
chore: limit docs snippet length to 100 (#24563) 2023-08-02 11:23:47 +02:00
Yury Semikhatsky
f5d069541d
chore(blob): add version to metadata (#24556) 2023-08-01 16:06:06 -07:00
Yury Semikhatsky
8da37b364b
chore(blob): zip output directory by default (#24536)
Changed the logic to add attachment to the zip in onEnd rather than
onTestEnd because attachment files can be deleted if e.g. preserveOutput
option is specified. Instead we add files once all workers have been
shut down. On a simple run with 1000 tests each adding 1Mb attachment
the overall time difference is 49s (streaming attachments) v 1m9s
(attachments added in the end).
2023-08-01 15:21:23 -07:00
Dmitry Gozman
d92fe16b76
fix(blob report): default location relative to package.json (#24481)
Also:
- remove `blob-report` directory at the start;
- markdown's `report.md` next to package.json;
- use default location in playwright's workflows.

References #24451.
2023-07-28 15:49:31 -07:00
Dmitry Gozman
a74101d98f
docs: document expect's asymmetric matchers (#24498)
References #24460, #24417.
2023-07-28 14:04:01 -07:00
Dmitry Gozman
9c70a75d48
fix(merge): make sure testId from different blobs are unique (#24475)
Fixes a scenario where each shard runs the same setup project.

References #24451.
2023-07-27 18:54:00 -07:00
Dmitry Gozman
ea6d127f28
feat(connect): exposeNetwork option (#24436) 2023-07-26 17:29:31 -07:00
Dmitry Gozman
e0cbb0882b
fix(launch): default to non-zero launch timeout (#24440)
When not specified, launch timeout is 3 minutes, taken from the
`DEFAULT_LAUNCH_TIMEOUT` constant.
Also, use the default launch timeout for `electron.launch()` instead of
default regular timeout.
2023-07-26 16:16:00 -07:00
Dmitry Gozman
c8b45aa844
chore: validate markdown links in doclint (#24444)
Fixes #24421.
2023-07-26 16:15:07 -07:00
Dmitry Gozman
4be1e479ea
fix(artifacts): only attach screenshot when it succeeds (#24406)
Fixes #24378.
2023-07-26 15:22:04 -07:00
Dmitry Gozman
ed99ac7395
fix(sigint): make sure we do not add handler twice (#24413)
In the following scenario, we were adding SIGINT handler twice, but
removing it just once:
- Task runner starts testing, creates SigIntWatcher, installs SIGINT
handler.
- Press Ctrl+C, task runner interrupts, disarms SigIntWatcher, SIGINT
handler is not removed due to 1000ms cooldown.
- Task runner starts cleanup, creates SigIntWatcher, installs another
SIGINT handler.
- Cleanup finishes, SigIntWatcher disarms, could remove or not remove
SIGINT handler based on timing (same 1000ms cooldown). In any case, we
have one or two SIGINT handlers still on.
- HTML reporter hangs in onExit, while we still have SIGINT handler up,
so Ctrl+C does not exit.

Regressed in #24265.
2023-07-25 18:35:38 -07:00
Pavel Feldman
4ba6d789bc
Revert "chore: refactor timeout manager to use scopes (1) (#24315)" (#24382)
This reverts commit f5df0940c9ed814234aab56c6bc6d0eba243ee9b.
2023-07-24 14:09:20 -07:00
Dmitry Gozman
b4c412eb1f
chore: replace process.exit with graceful closure (#24242)
Everywhere we call `process.exit()`, we might actually need to
gracefully close all browsers.
2023-07-24 08:29:29 -07:00
Marcin Strzyz
2070861807
chore: ensure the file operations are async in the json reporter. (#24356) 2023-07-23 09:26:32 +02:00
Yury Semikhatsky
6a3721eb9c
chore: delete --attachments option from merge-reports command (#24350)
We recommend uploading all resources along with the generated report. If
need be we'll reconsider adding the option later.
2023-07-21 13:15:00 -07:00
Pavel Feldman
f5df0940c9
chore: refactor timeout manager to use scopes (1) (#24315) 2023-07-20 17:21:21 -07:00
Dmitry Gozman
767addec8c
chore: make sure to call task's teardown if it has ever started (#24317)
This way things like WebServerPlugin can cleanup after themselves even
if they failed to start or were interrupted mid-way.
2023-07-20 17:16:22 -07:00
Max Schmitt
1288519915
fix(ui-mode): run teardown handlers with Command + C (#24267)
Fixes https://github.com/microsoft/playwright/issues/23907
2023-07-19 17:50:25 +02:00
Pavel Feldman
879ddb73b0
chore: show last poller error on test timeout (#24292) 2023-07-18 17:03:26 -07:00
Marcin Strzyz
d5e7b4f16f
chore: update rimraf package to version 4 to eliminate "promisify" (#24190)
Migrate to version 4 which returns a promise rather than leverages a
callback. -> https://www.npmjs.com/package/rimraf?activeTab=readme

- contains its own types, eliminate "@types/rimraf"
- Parameter `maxBusyTries` changed to `maxRetries`
2023-07-18 19:58:07 +02:00
Max Schmitt
d2f581a19c
fix(test-runner): don't double emit SIGINT in long running test (#24265)
https://github.com/microsoft/playwright/issues/23907

This fixes the following scenario. You press Command + C during the
test-execution, then a global teardown will execute, which takes a long
time and before this on macOS did sometimes end up in an unwanted SIGINT
received inside the globalTeardown handler. After this change this won't
happen anymore.
2023-07-18 18:46:18 +02:00
Yury Semikhatsky
d0280ec8c7
chore(blob): drop shard number from report name (#24270)
We store shard number in the report metadata event and then sort shard
files by shard number. This guarantees that within each project sharded
events will always go in stable order.
2023-07-18 09:29:25 -07:00
Pavel Feldman
5ff1fadd7b
chore: apply only filtration to deps (#24268) 2023-07-17 16:48:52 -07:00
Yury Semikhatsky
f6540f89ea
chore(markdown): do not print details for flaky tests (#24264) 2023-07-17 16:09:59 -07:00
Yury Semikhatsky
15b9e5afdb
fix: print fatal and no snippet errors in markdown report (#24263) 2023-07-17 13:50:00 -07:00
Pavel Feldman
49c1f9eb02
feat(ui): run deps in UI mode if dep projects are checked (#24245) 2023-07-15 15:11:31 -07:00
Yury Semikhatsky
3616023cf6
chore: markdown report details (#24237) 2023-07-14 12:32:25 -07:00