Pavel Feldman
11a4b3f7f5
chore: remove parsed stack trace ( #27496 )
2023-10-09 17:04:16 -07:00
Pavel Feldman
70dbb9d83a
feat(trace): allow navigating from error to source ( #27464 )
2023-10-05 14:59:59 -07:00
Jim Hays
dcc8dcca73
Fix various typos ( Fixes #27396 ) ( #27391 )
...
Fixes https://github.com/microsoft/playwright/issues/27396
2023-10-04 19:56:42 -07:00
Dmitry Gozman
daba77644c
feat: composedExpect ( #27432 )
...
Allows to merge multiple expects with custom matchers added by
`expect.extend()`.
2023-10-04 15:01:25 -07:00
Yury Semikhatsky
ac48a47d33
feat: toHaveAttribute without value ( #27418 )
...
This time not doing it in other languages due to unjustified generator
complexity.
Fixes #27341
2023-10-04 09:27:28 -07:00
Dmitry Gozman
65ce4cd213
feat: expose composedTest() instead of test._extendTest() ( #27414 )
2023-10-03 13:26:30 -07:00
Pavel Feldman
d136b0aeb6
feat(step): allow boxing steps ( #27334 )
2023-09-29 09:44:00 -07:00
Sander
2032b64ee6
feat(ct): allow baseUrl and host config ( #27295 )
...
closes: https://github.com/microsoft/playwright/issues/27283
2023-09-26 16:32:51 -07:00
Yury Semikhatsky
d198784f1a
fix(blob): use reporters from the merge config ( #27301 )
...
Fixes https://github.com/microsoft/playwright/issues/27281
2023-09-26 11:41:17 -07:00
Pavel Feldman
aed86c98a8
chore(ct): allow using component as a property ( #27272 )
2023-09-25 17:00:52 -07:00
Dmitry Gozman
66eb3043f5
feat(json report): expose startTime and duration ( #27290 )
...
Fixes #27183 .
2023-09-25 10:58:55 -07:00
Pavel Feldman
a6a0257c88
feat(expect): allow chaining expects ( #27248 )
2023-09-22 12:12:17 -07:00
Dmitry Gozman
49fd9500fe
fix: handle worker process start failure ( #27249 )
...
Worker process start failure is reported as a test error and skips other
tests from the group.
If happened during stop (e.g. from a Ctrl+C) before worker has fully
initialized, this error is ignored.
Drive-by: send SIGINT in tests to the whole tree, to better emulate
Ctrl+C behavior.
2023-09-22 10:57:35 -07:00
Pavel Feldman
9fe037fb63
chore: populate matcherResult in web assertions ( #27133 )
...
Ref https://github.com/microsoft/playwright/issues/26929
2023-09-16 14:24:10 -07:00
Dmitry Gozman
3bcf9687e6
fix(test runner): make sure auto worker fixtures run before auto test fixtures ( #27131 )
...
Fixes #27114 .
2023-09-15 14:51:31 -07:00
Pavel Feldman
527d260cbf
chore: hide tracing calls from traces ( #27096 )
2023-09-15 12:55:49 -07:00
Max Schmitt
0d44405762
fix: custom expect matchers on Locator/Page/APIResponse instance ( #27117 )
...
Fixes https://github.com/microsoft/playwright/issues/27113
2023-09-15 18:05:44 +02:00
Yury Semikhatsky
ebf6a08290
fix: list tests only once ( #27103 )
...
Fixes #27087
2023-09-14 20:00:30 -07:00
Max Schmitt
26cbe69442
test: use intermediate merge report for JSON repoter ( #27092 )
2023-09-15 04:36:15 +02:00
David Paquette
3170963f42
fix: render JUnit attachment paths relative to outputFile ( #27024 )
2023-09-14 12:58:09 -07:00
Dmitry Gozman
603861c48d
fix: revert toMatchSnapshot deprecation ( #27089 )
...
- This reverts commit
8348f66107
landed in #26718 .
- Update docs to point towards `toHaveScreenshot`.
2023-09-14 12:52:41 -07:00
Max Schmitt
aa929bff3b
test: unflake 'filter should update stats' test ( #27085 )
...
It's not possible to calculate the total test duration of the tests in
the UI, since our `msToString` function is lossy. This patch unflakes
the
[test](https://github.com/microsoft/playwright/actions/runs/6183832112/job/16787806162?pr=27074#step:7:254 )
when it took longer than a second to start, by writing the test-ids to
the DOM, getting them into the Node.js process, and calculating their
test duration sum based on the JSON report.
Drive-by: I found a bug that we used the JSON report from the main
test-runner process rather than from the merge process, so the test IDs
were still old. (Without that change the `useIntermediateMergeReport`
tests were not passing.
2023-09-14 19:51:05 +02:00
Max Schmitt
4431a8366d
fix: collect stdio from forked processes ( #27074 )
...
A summary about the attempts we tried in
https://github.com/microsoft/playwright/pull/26931 for
https://github.com/microsoft/playwright/issues/26859 and
https://github.com/microsoft/playwright/issues/24591 .
1. attempt: collect all the stdio from the worker host.
- this made it hard to capture the live console logs for the live trace
2. attempt: collect all the stdio from the worker host, but keep
proxying `process.{stdout,stderr}.write`.
- this solved the live console logs problem, since we could still listen
on them
- we found out about a race that the stdout/stderr streams can still
buffer data while the test already had finished
- we created a best effort flush implementation but didn't like the
complexity it introduced to the project
3. attempt: keep things like they are but also listen to stdio from the
worker host
- this solves the race of console.log in the test (things stay like they
are)
- this keeps live trace working (things stay like they are)
- a known pitfall is that it could result in logs which don't end up in
the reporter onStdOut/onStdErr, but it is already a significant
improvement over how it was before.
- before: they were not getting displayed
- after: they are getting displayed and there is a low likelihood that
they don't end up in the reporter API if the write happens slightly
before a test finished.
Closes #26931
Fixes #26859
Fixes #24591
2023-09-14 18:34:26 +02:00
Dmitry Gozman
f9298cfff6
fix(tracing): unclash trace names between test and hooks ( #27063 )
...
Fixes #27048 .
2023-09-13 19:56:40 -07:00
Andrey Lushnikov
45d2a36453
chore: roll stable test runner to 1.38 beta ( #27066 )
2023-09-13 16:01:06 -07:00
Pavel Feldman
02c72e545b
feat(onEnd): allow overriding the exit code ( #27010 )
...
Fixes: https://github.com/microsoft/playwright/issues/26858
2023-09-12 13:37:30 -07:00
Max Schmitt
d0945192a4
feat: make it possible to filter by column in HTML report ( #27020 )
2023-09-12 22:13:15 +02:00
Max Schmitt
01ab703400
test: restore useIntermediateMergeReport=true test mode in html tests ( #26989 )
...
This got accidentally removed in
https://github.com/microsoft/playwright/pull/26799 .
2023-09-11 09:14:05 -07:00
Yury Semikhatsky
2feae015aa
chore: remove details from markdown reports ( #26961 )
...
- remove error details from the reports
- collapse flaky tests by default
- limit comment to 65365 character
GitHub API has comment length limit 65536 chars:
```
Unhandled error: HttpError: Validation Failed: {"resource":"IssueComment","code":"unprocessable","field":"data","message":"Body is too long (maximum is 65536 characters)"}
```
2023-09-08 17:49:34 -07:00
Dmitry Gozman
186f86905c
chore: make @playwright/test depend on playwright ( #26946 )
2023-09-08 14:23:35 -07:00
Pavel Feldman
167c35ca66
chore: store scroll positions in trace viewer ( #26938 )
2023-09-07 17:14:39 -07:00
Pavel Feldman
a339bead09
chore: implement faster ansi2html format for console ( #26826 )
2023-09-01 09:09:47 -07:00
Pavel Feldman
4948920437
fix(ui): do not log from beforeAll twice ( #26799 )
...
Fixes https://github.com/microsoft/playwright/issues/26790
2023-08-31 17:34:15 -07:00
Dmitry Gozman
fa286de0b3
fix(test runner): extract FailureTracker helper ( #26757 )
...
This way we can reuse it for:
- tracking `maxFailures` across phases;
- tracking failures for runner;
- tracking failures for `runJob` helper class later on.
Fixes #26344 .
2023-08-31 15:32:29 -07:00
Dmitry Gozman
6d85ba1494
fix: remove connectInsteadOfLaunching ( #26828 )
2023-08-31 15:29:04 -07:00
Pavel Feldman
c209d7e708
chore: more network panel polish ( #26780 )
2023-08-29 22:20:28 -07:00
Pavel Feldman
34c6197f9e
chore: include start/endTime and duration in onEnd report callback ( #26760 )
...
Fixes https://github.com/microsoft/playwright/issues/23637
2023-08-29 10:56:21 -07:00
Pavel Feldman
38f1e62642
chore: use custom expect message in trace step ( #26752 )
2023-08-28 14:48:24 -07:00
Dmitry Gozman
8348f66107
feat: deprecate toMatchSnapshot for buffers ( #26718 )
...
These are usually used for screenshots instead of toHaveScreenshot.
String-based snapshots are left as is.
<img width="836" alt="deprecated"
src="https://github.com/microsoft/playwright/assets/9881434/d02818da-7eea-47fc-8ea8-4104b0dd49b5 ">
---
Also deemphasized toMatchSnapshot throughout all docs.
Fixes #26612 .
2023-08-25 18:20:01 -07:00
Pavel Feldman
376f2850b3
chore: flaky tests fixes ( #26714 )
2023-08-25 12:43:50 -07:00
Max Schmitt
9ae77a71fd
feat: print message if maxFailures has reached ( #26322 )
...
Fixes https://github.com/microsoft/playwright/issues/24239
2023-08-25 19:06:49 +02:00
Pavel Feldman
e7bd1864a8
chore: do not add plugins to config twice ( #26670 )
2023-08-24 16:19:57 -07:00
Dmitry Gozman
c970179551
fix(resolver): allow importing packages with non-index main script ( #26692 )
...
Regressed in https://github.com/microsoft/playwright/pull/23254 .
Fixes #26650 .
2023-08-24 14:09:00 -07:00
Dmitry Gozman
c90c943154
fix(test.fail): expect() failure should not skip future tests ( #26663 )
...
We used to stop the worker that would skip future tests. Regressed in
https://github.com/microsoft/playwright/pull/11850 .
Fixes #26435 .
2023-08-24 08:32:14 -07:00
Dmitry Gozman
81cc39ea6e
feat(expect): narrow down available assertions for Page/Locator/APIResponse ( #26658 )
...
Fixes #26381 .
2023-08-23 13:14:39 -07:00
Dmitry Gozman
218955c155
fix(test runner): make sure static annotations are reported for skipped tests ( #26634 )
...
Fixes #26397 .
2023-08-23 08:40:12 -07:00
Pavel Feldman
f4f9e526a2
chore: tolerate css imports ( #26626 )
...
Fixes https://github.com/microsoft/playwright/issues/24580
2023-08-23 08:32:23 -07:00
Pavel Feldman
00e6540799
feat(ui): show test trace events live ( #26619 )
2023-08-22 15:46:41 -07:00
Pavel Feldman
65aa062ea1
fix(console): make format console message w/o args ( #26620 )
...
Fixes https://github.com/microsoft/playwright/issues/26600
2023-08-22 14:29:35 -07:00
Pavel Feldman
1ceaa923ea
chore: create artifacts dir in the test runner ( #26594 )
2023-08-21 19:41:10 -07:00
Pavel Feldman
c3c3c7f53c
chore: decorate console message sources ( #26588 )
2023-08-21 16:05:27 -07:00
Pavel Feldman
f83d81956d
chore: make console stream live in ui mode ( #26562 )
2023-08-21 10:59:37 -07:00
Richard Blažo
bcc30bc71e
feat: add title for before and after hooks ( #26523 )
2023-08-21 09:50:22 -07:00
Pavel Feldman
41c312cd04
chore: fix ui mode to show screenshots ( #26563 )
2023-08-20 14:47:18 -07:00
Pavel Feldman
09bb866333
chore: format console message from page ( #26555 )
2023-08-19 16:13:42 -07:00
Max Schmitt
75ed251c9e
fix: download of attachments in UI Mode ( #26407 )
...
Fixes https://github.com/microsoft/playwright/issues/26326 .
2023-08-17 10:57:28 +02:00
Marcin Strzyz
42543a48a7
fix: fixed PW_TEST_HTML_REPORT_OPEN + more type safe + doc ( #24571 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-08-17 09:48:59 +02:00
Pavel Feldman
a705d68c8a
chore: filter actions, console and network based on the timeline window ( #26509 )
2023-08-16 16:30:17 -07:00
Pavel Feldman
929a849265
chore: fix .only in dependent tests ( #26503 )
...
Fixes https://github.com/microsoft/playwright/issues/26492
2023-08-16 13:39:08 -07:00
Max Schmitt
4c4525c9e0
chore: make html report produce named attachments ( #26421 )
...
https://github.com/microsoft/playwright/issues/26326
2023-08-16 18:06:04 +02:00
Max Schmitt
bd988b34a7
chore: allow calling spawnSync on Node.js file inside test ( #26429 )
...
Fixes https://github.com/microsoft/playwright/issues/24516
Relates https://github.com/microsoft/playwright/pull/16733
2023-08-11 18:37:14 +02:00
Yury Semikhatsky
ad9d20311a
fix(merge): allow reports with same name as input ( #26413 )
2023-08-10 12:47:31 -07:00
Yury Semikhatsky
d44a127014
chore: delete raw reporter ( #26391 )
...
Build HTML reporter using TeleReceiver's structures directly, this saves
us unnecessary memory allocation for the intermediate structures.
2023-08-09 22:01:44 -07:00
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
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
7516d6a914
chore: roll stable runner to Aug 7 ( #26334 )
2023-08-07 16:27:08 -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
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
Yury Semikhatsky
3eb59b873a
chore: roll stable test runner to Aug 6 ( #26310 )
2023-08-06 09:56:36 -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.:

2023-08-04 16:06:23 -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
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
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
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
Dmitry Gozman
ed14bf2103
test: replace sendSIGINTAfter with interactWithTestRunner ( #24411 )
...
This way we can send multiple SIGINTs in tests.
2023-07-25 15:46:39 -07:00
Dmitry Gozman
9d0bba9c99
fix(tracing): do not throw on missing attachments ( #24409 )
...
Fixes #24378 .
2023-07-25 14:32:56 -07:00
Pavel Feldman
4ba6d789bc
Revert "chore: refactor timeout manager to use scopes (1) ( #24315 )" ( #24382 )
...
This reverts commit f5df0940c9 .
2023-07-24 14:09:20 -07: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
Yury Semikhatsky
b2965158d3
chore: roll stable test runner to July 19 ( #24314 )
2023-07-20 15:40:57 -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
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
15b9e5afdb
fix: print fatal and no snippet errors in markdown report ( #24263 )
2023-07-17 13:50:00 -07:00
Pavel Feldman
af3e735147
chore: additional test for setup/teardown ( #24261 )
2023-07-17 12:29:16 -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
d92db9a513
devops: always create blob report on CI, write PR number within action ( #24241 )
2023-07-14 15:10:29 -07:00
Yury Semikhatsky
3616023cf6
chore: markdown report details ( #24237 )
2023-07-14 12:32:25 -07:00
Pavel Feldman
5d799606c3
chore: resolve top-level vs dependency after cli filtering ( #24216 )
2023-07-13 17:54:08 -07:00
Max Schmitt
57cca1d96e
Revert "fix: do not collide with other tests when test names have special chars ( #23414 )" ( #24213 )
...
This reverts commit 4b1b4dc23b .
https://github.com/microsoft/playwright/issues/24184
Reopens https://github.com/microsoft/playwright/issues/23386
2023-07-13 20:03:02 +02:00
Max Schmitt
a0b0752662
fix: encode launch options correctly when reusing browser ( #24174 )
...
Fixes https://github.com/microsoft/playwright/issues/24157
2023-07-12 16:40:55 +02:00
Pavel Feldman
63915dc07a
feat(trace): render Node console messages in trace ( #24139 )
2023-07-10 18:36:28 -07:00
Andrey Lushnikov
94d6b1210b
fix: do not create empty directories for successful snapshot tests ( #24127 )
...
Fixes https://github.com/microsoft/playwright/issues/15600
2023-07-10 09:45:24 -07:00
Andrey Lushnikov
9af2b518f2
fix: exclude tracesDir option from launchOptions fixture ( #24086 )
...
Fixes https://github.com/microsoft/playwright/issues/23645
2023-07-06 13:31:44 -07:00
Pavel Feldman
608e336dba
fix(error): create a step for raw runtime error ( #24057 )
...
Fix https://github.com/microsoft/playwright/issues/23850
2023-07-06 10:48:12 -07:00
Pavel Feldman
566b277ce8
fix(steps): only propagate soft errors up the hierarchy ( #24054 )
...
Fixes https://github.com/microsoft/playwright/issues/23979
2023-07-05 15:30:53 -07:00
Pavel Feldman
df57fb594c
fix(trace): render items under expect.toPass ( #24016 )
...
Fixes: https://github.com/microsoft/playwright/issues/23942
2023-07-05 11:20:28 -07:00
Dmitry Gozman
7e310f79af
chore: migrate builtin reporters to ReporterV2 ( #23985 )
...
This allows builtin reporters to handle stdio between onConfigure and
onBegin.
Fixes #23539 .
2023-06-30 16:21:31 -07:00
Dmitry Gozman
86c1abd934
chore: introduce ReporterV2 interface ( #23983 )
2023-06-30 13:36:50 -07:00
Dmitry Gozman
92c738b14a
test: unflake some tests ( #23984 )
2023-06-30 13:08:18 -07:00
Dmitry Gozman
e28312ba63
chore: call onEnd(result) on InternalReporter ( #23972 )
...
Drive-by: fix watch mode not running global teardown.
2023-06-29 17:03:10 -07:00
Max Schmitt
4b1b4dc23b
fix: do not collide with other tests when test names have special chars ( #23414 )
...
Fixes https://github.com/microsoft/playwright/issues/23386
2023-06-27 10:34:31 +02:00
Yury Semikhatsky
6a6ff9cf6a
feat: markdown report ( #23819 )
...
Simple markdown report generator. Can be used when posting updates to
GitHub PRs:
<img width="632" alt="image"
src="https://github.com/microsoft/playwright/assets/9798949/ea7e4bfa-477a-4cad-9cc3-00b1f8a314b1 ">
2023-06-20 12:11:32 -07:00
Dmitry Gozman
2c8dd67b0e
fix(test runner): improve error message for non-stable test titles ( #23792 )
...
Fixes #23779 .
2023-06-19 14:13:11 -07:00
Yury Semikhatsky
f6d86c20f3
chore: run more reporter tests through blob report, some fixes ( #23765 )
2023-06-16 21:30:55 -07:00
Yury Semikhatsky
426d6dde0e
chore: dedup mergeReport fixture ( #23762 )
2023-06-16 16:40:55 -07:00
Yury Semikhatsky
11770156eb
feat(html): show number of filtered tests, update total time ( #23743 )
2023-06-16 09:22:57 -07:00
Yury Semikhatsky
b032e10973
chore: roll stable test runner to jun-15-2023 ( #23722 )
2023-06-14 18:41:42 -07:00
Yury Semikhatsky
77d322028c
feat(blob): zip .jsonl report files ( #23720 )
...
For linux tests without tracing blob-report-1.zip takes 19M, while
unpacked size is 228 MB. That size is counted for GitHub artifact
billing:
<img width="434" alt="image"
src="https://github.com/microsoft/playwright/assets/9798949/5bc32511-6686-4581-a348-acb6a54cd99b ">
We zip individual .jsonl reports so that they still have unique names
and can be easily uploaded into the same artifacts directory without
name collisions.
2023-06-14 17:10:39 -07:00
Andrey Lushnikov
3c0fab489b
chore: miscellaneous trace viewer fixes ( #23695 )
...
- properly annotate continued requests
- nest `attach` steps inside the related `expect` step
- fix primary-id-to-non-primary-id mapping
- make sure images in trace are not draggable
Fixes #23693
---------
Signed-off-by: Andrey Lushnikov <aslushnikov@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-06-14 09:37:19 -07:00
Yury Semikhatsky
dd9a49690b
test: speculative fix for reporter-blob ( #23630 )
2023-06-09 17:16:45 -07:00
Yury Semikhatsky
abdfe264fa
chore: run html reporter tests with merged report ( #23626 )
2023-06-09 15:41:15 -07:00
Yury Semikhatsky
400c7cd529
fix: serialize attachment to base64 in tele reporter ( #23590 )
2023-06-09 11:52:18 -07:00
Yury Semikhatsky
ded4a294f4
fix(merge): populate TestResult.stdout/stderr when merging ( #23587 )
2023-06-07 23:00:57 -07:00
Yury Semikhatsky
843034d83d
chore: roll stable test runner to 1.35.0-alpha-jun-7-2023 ( #23585 )
...
This fixes following error in the merged reports:
```
(index):9825 TypeError: Cannot read properties of null (reading 'toFixed')
at msToString ((index):18917:15)
at TestFilesView ((index):19373:9)
at Uh ((index):9372:7)
at kj ((index):10444:7)
at Uk ((index):12508:86)
at Tk ((index):12134:11)
```
2023-06-07 15:54:14 -07:00
Andrey Lushnikov
0f4090472c
feat: add maskColor option to the toHaveScreenshot method ( #23555 )
2023-06-06 17:15:55 -07:00
Yury Semikhatsky
874f4525b4
fix(merger): total time is sum of shard total times ( #23534 )
2023-06-05 19:10:41 -07:00
Yury Semikhatsky
ceaa29cec1
chore: clear message for no reports ( #23492 )
2023-06-05 17:20:54 -07:00
Dmitry Gozman
6b687b6d69
fix(toHaveScreenshot): attach newly created missing expectations ( #23528 )
...
Fixes #23090 .
2023-06-05 14:57:06 -07:00
Kristo Jorgenson
d5d155df1f
fix(typescript): allow directory imports ( #23254 )
...
This updates previous work in #22887 to align more fully with
`--moduleResolution=bundler`, allowing index files to be imported with
the /index extension
---------
Signed-off-by: Kristo Jorgenson <kristojorg@users.noreply.github.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-06-05 08:58:25 -07:00
Yury Semikhatsky
9cd49d5dd5
test: unflake "should stop tracing on requestContext.dispose()" ( #23489 )
...
Use Chromium instead of Firefox as it navigates faster and remove
timeout from the slow request handler, just make it hang.
Fixes #23116
2023-06-02 16:37:50 -07:00
Max Schmitt
3c2a8fa306
chore: enable no-floating-promises ESLint rule for tests ( #23376 )
...
https://github.com/microsoft/playwright/issues/23339
2023-06-02 21:59:12 +02:00
Max Schmitt
af893a1019
chore: inherit apiRequestContext timeout from actionTimeout ( #23481 )
...
Fixes https://github.com/microsoft/playwright/issues/23344
2023-06-02 21:36:09 +02:00
Max Schmitt
a97bdd0016
chore: update typescript to 5.1.3 ( #23461 )
...
https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/
2023-06-02 18:57:09 +02:00
Pavel Feldman
d1666d2dde
chore: include test-end-screenshot in a trace ( #23457 )
...
Fixes https://github.com/microsoft/playwright/issues/23222
2023-06-01 20:29:32 -07:00
Pavel Feldman
96b2247e28
chore: allow marking scripts as external for transform ( #23449 )
...
Fixes https://github.com/microsoft/playwright/issues/22874
2023-06-01 20:28:49 -07:00
Pavel Feldman
84942aa992
chore: render successful toPass as such ( #23411 )
...
Fixes https://github.com/microsoft/playwright/issues/23302
2023-06-01 13:22:08 -07:00
Dmitry Gozman
5d5314e006
test: make sure trace is recorded for custom fixtures ( #23418 )
...
References #23220 .
2023-05-31 21:50:20 -07:00
Pavel Feldman
7ad03027fb
chore: remove output dir before each test ( #23380 )
2023-05-30 16:03:50 -07:00
Yury Semikhatsky
624e88e504
chore: roll stable test runner to May 26 ( #23308 )
2023-05-26 09:19:23 -07:00
Yury Semikhatsky
57e496c978
test: use platform specific path separator ( #23311 )
...
The test has been failing recently
https://devops.playwright.dev/flakiness.html#filter_spec=should+list+files×tamp=1685115453114
2023-05-26 09:18:53 -07:00
Dmitry Gozman
fa86f2aee0
chore: createHttpServer that destroys sockets upon close ( #23294 )
...
This avoids the server hanging on close.
2023-05-26 07:03:41 -07:00
Yury Semikhatsky
6a2d07401e
chore: roll stable test runner to May 25 ( #23289 )
2023-05-25 15:39:51 -07:00
Pavel Feldman
f879ac7e44
chore: report output dir as a part of the list files ( #23283 )
2023-05-25 15:38:35 -07:00
Dmitry Gozman
00b34dddb2
chore: move TestServer under test/ ( #23287 )
2023-05-25 15:11:16 -07:00
Tomáš Hübelbauer
e550df060e
Enhance the forbidOnly mode message to guide the user towards the configuration option ( #23146 )
...
Hi, I am putting this PR out as a feeler to see if there's interested in
improving this error message, but the copy is by no means final and I am
open to improvement suggestions.
My intention here is to:
- Explain what a "focused item" is - that we're talking about a test and
it being focused is most likely down it using `only`
Are there other types of "items"? Are there other ways to make them
focused other than `only`?
- Explain why we're even in focused mode and how to control it
The default scaffolded Playwright config file includes a forbidMode
expression driven by whether `CI=1` is set.
I ran into this when trying to reproduce a CI issue locally so I had it
set and unknowingly entered focus only mode.
I wasn't aware this mode was a thing because I was using the default
configuration from `npm init` and did not familiarize myself with all
the options in it.
Is there a way to tell if we're in a TypeScript or JavaScript project in
this function? I would use that to display the configuration file name
with the right extension.
---------
Signed-off-by: Tomáš Hübelbauer <tomas@hubelbauer.net>
2023-05-25 13:32:49 -07:00
Yury Semikhatsky
dce730c3be
fix: consider project suffix when computing id ( #23270 )
2023-05-25 10:36:34 -07:00
Dmitry Gozman
70589c0113
test: unflake "beforeAll and afterAll should have a separate timeout" ( #23263 )
2023-05-24 13:46:28 -07:00
Dmitry Gozman
871032b411
test: unflake some reporter tests ( #23264 )
2023-05-24 13:28:40 -07:00
Dmitry Gozman
2858ca95d8
tet: unflake some test runner tests ( #23240 )
...
- `unhandled rejection during beforeAll should be reported and prevent
more tests` had timeout of 100ms that is too short on busy system;
- `runTSC` is always slow, so mark as such.
2023-05-23 13:31:23 -07:00
Pavel Feldman
fd75b85510
Revert "chore: more tree gardening ( #23119 )"
...
This reverts commit e6bc32b022 .
2023-05-23 12:04:44 -07:00
Pavel Feldman
6cce93b697
chore: explicit server mode control ( #23215 )
2023-05-23 10:56:37 -07:00
Pavel Feldman
b814e8a5f1
chore: bring back per test artifacts ( #23153 )
2023-05-23 09:36:35 -07:00
Yury Semikhatsky
10b7cb3979
chore: blob report project suffix ( #23212 )
2023-05-22 17:54:37 -07:00
Pavel Feldman
b9e7a91368
fix(html): fix the filter to respect status ( #23208 )
2023-05-22 15:35:19 -07:00
Pavel Feldman
ee3864913a
chore: allow stub JSX instances in type module ( #23211 )
...
Fixes https://github.com/microsoft/playwright/issues/23207
2023-05-22 15:34:50 -07:00
Pavel Feldman
8fee175896
test(filter): add a filter by location test ( #23170 )
2023-05-19 13:35:11 -07:00
Yury Semikhatsky
5004f908d9
devops: do not upload test-results artifacts ( #23168 )
2023-05-19 13:06:42 -07:00
Pavel Feldman
49370cb6fd
chore: fix file view padding ( #23166 )
2023-05-19 11:07:49 -07:00
Pavel Feldman
2697e93663
chore: do not annotate actions after failed ones as timed out ( #23148 )
2023-05-18 15:52:44 -07:00
Dmitry Gozman
ab7e794bf7
feat(shard): introduce mode: 'default' ( #23023 )
...
This mode allows a suite to opt-out from parallelism. Useful to setup
multiple suites running in parallel, with each suite not being sharded.
References #22891 .
2023-05-18 13:07:22 -07:00
Pavel Feldman
969e5ff1aa
test: add attachment tests ( #23143 )
2023-05-18 11:48:53 -07:00
Pavel Feldman
2501bbb715
test(ui-mode): make retries ( #23136 )
2023-05-18 11:28:28 -07:00
Yury Semikhatsky
a1fc8ff07d
fix: preserve steps in merged report ( #23120 )
2023-05-18 09:38:49 -07:00
Max Schmitt
0c032eb7be
chore: do not read browserslist file ( #23127 )
...
Fixes https://github.com/microsoft/playwright/issues/23125
2023-05-18 18:11:08 +02:00
Andrey Lushnikov
e6bc32b022
chore: more tree gardening ( #23119 )
...
https://github.com/microsoft/playwright/issues/23114
https://github.com/microsoft/playwright/issues/23115
https://github.com/microsoft/playwright/issues/23116
https://github.com/microsoft/playwright/issues/23117
https://github.com/microsoft/playwright/issues/23118
2023-05-17 18:57:35 -07:00
Yury Semikhatsky
52feff39b3
chore: run primary tests with blob reporter ( #23076 )
2023-05-17 09:10:31 -07:00
Pavel Feldman
04070a59e1
chore: remove expect.configure({poll}) ( #23060 )
2023-05-16 18:45:03 -07:00
Dmitry Gozman
fc2e0e76bd
feat(teardown): allow the same project to be a teardown for multiple ( #23074 )
2023-05-16 18:26:06 -07:00
Yury Semikhatsky
2d3ab74d22
chore: roll stable test runner ( #23075 )
2023-05-16 18:02:53 -07:00
Dmitry Gozman
fec5059fee
feat(connect): print debug log when remote connection failed ( #23069 )
2023-05-16 16:46:02 -07:00
Max Schmitt
89f1940509
chore: be able to hide webServer stderr ( #23063 )
...
Follow-up to https://github.com/microsoft/playwright/pull/22564 .
2023-05-17 00:46:59 +02:00
Yury Semikhatsky
ed19e5403b
feat: merge config properties ( #23071 )
2023-05-16 15:15:11 -07:00
Pavel Feldman
2fc6341841
chore: remove node version checks from esm tests ( #23031 )
2023-05-16 11:07:34 -07:00
Dmitry Gozman
f469e4b1eb
fix(expect): mark step as failed when async custom matcher throws ( #23035 )
...
Fixes #23021 .
2023-05-15 19:37:12 -07:00
Max Schmitt
edd003c230
chore: validate expected image buffer when comparing images ( #23030 )
...
Fixes https://github.com/microsoft/playwright/issues/23012
2023-05-15 23:32:16 +02:00
Pavel Feldman
4c4085e105
chore: partially hide built-in fixture steps ( #23005 )
2023-05-12 19:15:31 -07:00
Yury Semikhatsky
576d91fe80
fix: unique resource names between shards ( #23004 )
2023-05-12 18:21:43 -07:00
Pavel Feldman
083d13a13d
chore: surface syntax error in ui mode ( #22982 )
...
Fixes https://github.com/microsoft/playwright/issues/22863
2023-05-12 14:23:22 -07:00
Yury Semikhatsky
3ccec7eae5
feat(merge): generate html report with links to remote resources ( #22968 )
2023-05-12 09:26:04 -07:00
Pavel Feldman
e6d8cf9693
chore: include plugin list into the cache digest ( #22946 )
...
Fixes https://github.com/microsoft/playwright/issues/22931
2023-05-11 21:09:15 -07:00
Dmitry Gozman
9ffe33fae8
feat(test runner): support tsconfig.extends array ( #22975 )
...
Fixes #22151 .
2023-05-11 19:18:13 -07:00
Pavel Feldman
59b9a39740
chore: add string attachments to trace ( #22921 )
2023-05-11 16:32:32 -07:00
Dmitry Gozman
44a934c160
feat(test runner): support .cjs and .cts files ( #22971 )
...
Fixes #22579 .
2023-05-11 15:41:50 -07:00
Yury Semikhatsky
c9dad439cd
chore: write uncompressed blob report ( #22945 )
2023-05-10 15:08:53 -07:00
Pavel Feldman
5e0574dc44
chore: list attachments in the trace ( #22919 )
...
Fixes https://github.com/microsoft/playwright/issues/22736
2023-05-09 17:53:01 -07:00
Dmitry Gozman
cd49f5c466
feat(typescript): align with --moduleResolution=bundler ( #22887 )
...
This relaxes import requirements and allows importing `.ts` files
without an extension in CJS and ESM modes.
Fixes #22169 .
2023-05-09 16:26:29 -07:00
Pavel Feldman
0bf297f523
fix(trace): merge step hierarchies ( #22916 )
2023-05-09 14:50:28 -07:00
Alex Neo
5bd5cea705
feat(html): describe labels ( #22870 )
2023-05-08 18:59:01 -07:00
Pavel Feldman
b10cc03314
chore: render parse errors in the UI mode ( #22888 )
...
Fixes: https://github.com/microsoft/playwright/issues/22863
2023-05-08 18:51:27 -07:00
Pavel Feldman
9771b1ee74
chore: show steps for fixtures ( #22860 )
...
Fixes https://github.com/microsoft/playwright/issues/22565
2023-05-06 10:25:32 -07:00
Dmitry Gozman
03616e976e
fix(deps): --repeat-each should not apply to dependencies ( #22858 )
...
Fixes #21778 .
2023-05-05 16:59:39 -07:00
Pavel Feldman
efad19b332
chore: render test steps in the trace ( #22837 )
2023-05-05 15:12:18 -07:00
Pavel Feldman
9c25a04267
chore: use custom JSX runtime to stub-out erroneous JSX usage ( #22827 )
...
Fixes https://github.com/microsoft/playwright/issues/22789
2023-05-04 11:44:59 -07:00
Pavel Feldman
78203bf48d
chore: ensure error location is present ( #22804 )
...
Partial fix for https://github.com/microsoft/playwright/issues/22782
2023-05-03 18:45:33 -07:00
Dmitry Gozman
4edd023644
fix(tsconfig): fallback to default *:* path mapping when baseUrl is present ( #22802 )
...
According to
https://www.typescriptlang.org/docs/handbook/module-resolution.html#base-url ,
`baseUrl` affects all non-relative imports. Additional `paths` mapping
can be specified for more control. However, if none of the `paths`
matches, it still falls back to the default `*:*` mapping. Confirmed by
invoking `tsc` with different configs.
Fixes #22663 .
2023-05-03 16:08:06 -07:00
Pavel Feldman
9a61a55ea1
chore: nest api steps by time ( #22801 )
...
Fixes https://github.com/microsoft/playwright/issues/22786
2023-05-03 16:04:20 -07:00
Yury Semikhatsky
2233b352b6
fix(merger): pass onError to the reporter ( #22775 )
2023-05-03 09:08:09 -07:00
Dmitry Gozman
10ce7af411
fix(steps): step should not get an unrelated error ( #22773 )
...
Previously, we would use any error that was added during the step
execution as an error for this particular step.
This produces false positives, for example failing `page.click` call
that happened during `context` teardown was producing an error and
marking teardown is failed. However, in reality, the test itself has
failed, while teardown has not.
New approach uses test step hierarchy to inherit errors from child steps
to the parent step. This does not regress the original fix where
`expect.soft` errors are surfaced in the parent step.
See also #19973 that introduced the original logic.
2023-05-02 18:50:00 -07:00
Dmitry Gozman
dee0f2791e
test: unflake "should give enough time for fixture teardown" ( #22763 )
2023-05-02 17:40:10 -07:00
Dmitry Gozman
8f09935e81
fix(test runner): separate test fixture scope for beforeAll/afterAll hooks ( #22746 )
...
There was a single test fixture scope that covers all hooks, modifiers
and test function. Now beforeAll-like modifiers, beforeAll and afterAll
hooks get a scope each.
Fixes #22256 .
2023-05-02 11:04:51 -07:00
Pavel Feldman
5ad75f92f7
test: unflake basic timeout test ( #22745 )
2023-05-02 09:14:57 -07:00
Sander
5b69c4cf52
chore: bump vite to 4.3.3 ( #22711 )
2023-05-01 15:19:49 -07:00
Pavel Feldman
70011c82f7
chore: unflake ui tests (3) ( #22741 )
2023-05-01 15:18:34 -07:00
Yury Semikhatsky
a4e90f20dc
fix(runner): do not hang on worker exit before tests ( #22742 )
2023-05-01 14:54:48 -07:00
Dmitry Gozman
fcd966c4e5
chore: make _setupArtifacts a worker-scoped fixture ( #22739 )
...
This should unblock having separate test-fixture scopes for hooks and
test.
2023-05-01 13:53:15 -07:00
Yury Semikhatsky
59079d94ca
fix: call onExit when merging reports ( #22718 )
2023-05-01 12:58:40 -07:00
Pavel Feldman
297fea0826
chore: purify the junit reporter ( #22624 )
2023-05-01 09:15:08 -07:00
Alex Neo
26cad0b31f
feat(html): matching labels with dash&spec symbol ( #22709 )
...
Fixes #22700
2023-05-01 09:13:30 -07:00
Pavel Feldman
a01df2ff5b
chore: render live trace for the serial mode ( #22715 )
...
Fixes https://github.com/microsoft/playwright/issues/22655
2023-04-28 17:47:57 -07:00
Dmitry Gozman
dbb218a9d5
feat: project.teardown that runs after all dependents have finished ( #22696 )
...
This replicates globalTeardown in the deps world.
Fixes #21914 .
2023-04-28 14:27:08 -07:00
Pavel Feldman
2a675026de
chore: add image diff test to ui mode ( #22637 )
2023-04-28 14:18:46 -07:00
Pavel Feldman
e9373dfb6e
chore: make client-side instrumentation non-nullable ( #22694 )
2023-04-28 08:57:43 -07:00
Pavel Feldman
b555d33e38
chore: roll the stable test runner ( #22701 )
2023-04-28 08:57:19 -07:00
Alex Neo
7937699b28
fix(html): label not matched if first with describe ( #22680 )
2023-04-27 20:04:54 -07:00
Yury Semikhatsky
f37f5fc61c
chore: comma separated reporter names, reporter arg from config ( #22693 )
2023-04-27 15:16:18 -07:00
Dmitry Gozman
223baa3393
fix(html): keep tests in the declaration order ( #22690 )
...
Fixes #22143 .
2023-04-27 13:54:15 -07:00
Yury Semikhatsky
82670147b4
chore: support multiple merged reports ( #22672 )
2023-04-27 09:15:24 -07:00
Max Schmitt
7b27d70d8a
feat(web-server): add stdout: "pipe"|"ignore" option ( #22564 )
...
Fixes https://github.com/microsoft/playwright/issues/22454
2023-04-26 23:39:42 +02:00
Pavel Feldman
7fdd7a20fb
chore: fix soft after poll ( #22642 )
2023-04-26 08:50:10 -07:00
Pavel Feldman
6b487ff49d
chore: remove cli from playwright-core ( #22612 )
...
Fixes https://github.com/microsoft/playwright/issues/22599
2023-04-25 11:19:37 -07:00
Pavel Feldman
a1007bbe2c
chore: introduce expect.configure ( #22533 )
2023-04-25 10:29:56 -07:00
Yury Semikhatsky
24478be565
feat: preserve attachments in blob reports ( #22605 )
...
Attachments with `path` are stored as `resources/sha1.ext` zip entries
and extracted under `report-dir/tmp` when merging. This way normal
fs.readFile keeps working as before even thought the file path is
different. The clients should rely on `attachment.name` instead of
`attachment.path` when deriving user visible titles in the UI. If this
turns out not to be the case we can reconsider later.
#10437
2023-04-24 17:34:09 -07:00
Pavel Feldman
bbc47ba315
chore: ensure web assertions are merged in trace ( #22544 )
2023-04-21 10:07:23 -07:00
Pavel Feldman
d95268ffc0
chore: remove refined title ( #22541 )
2023-04-20 20:34:07 -07:00
Pavel Feldman
d9a7aa584c
chore: bump timeouts in ui mode tests ( #22526 )
2023-04-20 16:47:08 -07:00
Yury Semikhatsky
9ea9adf8ff
test: mark reporter-blob tests as slow ( #22530 )
...
They run several playwright instances for each shard and then open
merged html report which takes considerable time
2023-04-20 09:36:38 -07:00
Pavel Feldman
0c70f6900e
chore: fix ui mode w/ multiple contexts ( #22514 )
...
Fixes: https://github.com/microsoft/playwright/issues/21895
2023-04-20 08:19:00 -07:00
Pavel Feldman
cdaccdeaf7
chore: speculative change to fix the ui mode tests stress ( #22510 )
2023-04-20 08:18:09 -07:00
Pavel Feldman
8f14517de2
chore: allow collapsing all ( #22512 )
...
Fixes https://github.com/microsoft/playwright/issues/21915
2023-04-19 18:16:18 -07:00
Dmitry Gozman
957ec0067f
chore: separate concerns of testinfo helpers ( #22491 )
2023-04-19 17:31:07 -07:00
Pavel Feldman
a45f04568b
chore: rename watchmode to uimode tsx ( #22511 )
2023-04-19 16:51:42 -07:00
Pavel Feldman
e7b9c08833
chore: should not spill toPass between tests ( #22473 )
2023-04-19 14:45:58 -07:00
Dmitry Gozman
bf0fab4927
fix(ui mode): ignore repeatEach ( #22505 )
...
Fixes #22498 .
2023-04-19 14:16:12 -07:00
Max Schmitt
49c9284bc7
Revert "feat(html reporter): render multiple annotations of the same type together ( #21580 )" ( #22466 )
...
Fixes https://github.com/microsoft/playwright/issues/22323
2023-04-18 20:43:07 +02:00
mindaugasm
be79ee0450
feat(html-report): add attachmentsBaseURL option ( #22212 )
...
Fixes https://github.com/microsoft/playwright/issues/21636
2023-04-18 11:25:11 -07:00
Yury Semikhatsky
2ea214d6f0
fix: preserve trace if context if closed manually during test run ( #22442 )
...
Reference #22122 , #22120
2023-04-18 09:02:33 -07:00
Pavel Feldman
8d69fbacf7
chore: introduce ct-core to hard-depend on vite ( #22437 )
...
Fixes https://github.com/microsoft/playwright/issues/22233
2023-04-17 16:19:21 -07:00
Dmitry Gozman
bf661535a6
fix(testMatch): do not count test.ts and spec.ts as test files by default ( #22440 )
2023-04-17 12:57:33 -07:00
Andrey Lushnikov
8bb708be70
test: unflake inspector-cli tests ( #22347 )
...
This patch:
- changes the `childProcess` fixture to reliably SIGKILL all descendants
(children and grand-children, regardless of their process group).
This is achieved using the `ps` command to build the process tree, and
then send
`SIGKILL` to the descendant process groups.
- changes the `runCLI` fixture to **not** auto-close codegen by default;
the `childProcess` fixture will clean up all processes. This makes
sure that all `runCLI.waitFor()` commands actually wait until the
necessary
output.
- for a handful of tests that do actually want to auto-close codegen,
introduce an optional `autoCloseWhen` flag for the `runCLI` fixture
that makes sure to close the codegen once a certain output was reached.
2023-04-12 09:37:24 -07:00
Pavel Feldman
c5aeab4d7e
revert(20509, 20596): expect.toPass is broken with these ( #22254 )
...
Reverts https://github.com/microsoft/playwright/pull/20509 and
https://github.com/microsoft/playwright/pull/20596
Fixes #22215
2023-04-10 17:39:49 -07:00
Yury Semikhatsky
2af3f486c4
fix: do not load trace data for passing tests ( #22311 )
...
Fixes #22122
Fixes #22120
2023-04-10 13:29:55 -07:00
Yury Semikhatsky
1efa8de526
test: fix reporter blob tests on bots ( #22281 )
2023-04-07 17:48:54 -07:00
Yury Semikhatsky
8d2502ee62
test: make page-leaks tests pass in electron ( #22277 )
...
They've been failing
https://devops.playwright.dev/flakiness.html#filter_spec=page%2Fpage-leaks.spec.ts&test_parameter_filters=%5B%5D×tamp=1680901928195
2023-04-07 17:20:49 -07:00
Pavel Feldman
eed5b4c83b
chore: process stdio buffers ( #22270 )
...
Fixes https://github.com/microsoft/playwright/issues/22265
2023-04-07 13:50:15 -07:00
Yury Semikhatsky
d59e0e10ce
feat: blob reporter ( #22244 )
...
#10437
2023-04-07 13:47:52 -07:00
Pavel Feldman
159e71982e
chore: render failed steps in the basic reporters ( #22200 )
...
Fixes #20532
2023-04-05 13:03:42 -07:00
Johannes Loher
bd698efaef
fix(webServer): follow relative redirects when checking the url ( #22035 )
...
Fixes https://github.com/microsoft/playwright/issues/22144
2023-04-05 10:39:35 +02:00
Pavel Feldman
3608425d57
chore: allow reusing browser between the tests ( #22191 )
2023-04-04 12:31:42 -07:00
Pavel Feldman
f8f9ee6a25
chore: introduce Reporter.onExit ( #22176 )
...
Fixes https://github.com/microsoft/playwright/issues/22173
2023-04-04 10:50:40 -07:00
Pavel Feldman
87acda74ff
chore: respect source map sources when filtering in CLI ( #22180 )
...
Fixes #22123
2023-04-03 19:49:01 -07:00
Dmitry Gozman
ab85b23e67
fix(expect): report expect "Timed out" when it actually does ( #22174 )
...
Previously, it would say "Timed out" when page was closed at test
timeout, or not say "Timed out" when at least one element matched.
Fixes #21664 .
2023-04-03 15:06:13 -07:00
Dmitry Gozman
82e52004c9
fix(ui mode): preserve manually selected action in live trace ( #22131 )
2023-03-31 18:34:51 -07:00
Dmitry Gozman
41e3e6d13f
fix(tracing): avoid clashing network file names ( #22126 )
...
With two contexts in the same test, we can get:
- `<testId>.network` and `<testId>-1.network` files;
- for export, we can copy `<testId>.network` into `<testId>-1.network`
and try to copy into a file when another trace is reading from it.
Fixes #22089 .
2023-03-31 17:29:39 -07:00
MarcNum
fbdafc5fe3
feat: Adding trace option 'on-all-retries' ( #21985 )
...
Fixes : #21860
2023-03-31 13:04:24 -07:00
Dmitry Gozman
37d1659508
feat(connect): support special headers for debug/attachments ( #22106 )
...
`x-playwright-debug-log: value` headers are printed to `pw:browser`
debug log.
`x-playwright-attachment: name=value` headers are attached to each test.
Fixes #21619 .
2023-03-31 08:57:07 -07:00
Pavel Feldman
b1fdf0bcb6
chore: nest test steps based on zones ( #22108 )
...
Fixes : #21423
2023-03-30 21:05:07 -07:00
Pavel Feldman
eacaf5fc89
chore(ui): update expected state on test end ( #22104 )
...
Fixes https://github.com/microsoft/playwright/issues/22096
2023-03-30 16:17:34 -07:00
Pavel Feldman
a4f67c64e3
chore: allow ts decorators ( #22080 )
2023-03-29 20:43:08 -07:00
Pavel Feldman
d39ff3dc5a
chore: update typescript to 5.0.2 ( #22079 )
2023-03-29 17:13:09 -07:00
Yury Semikhatsky
026e49b076
chore: add snippet to the error message ( #21991 )
2023-03-29 14:07:14 -07:00
Pavel Feldman
8b7dc2cf7a
test: add a ui teardown test ( #22010 )
2023-03-29 13:57:19 -07:00
Dmitry Gozman
f7244a7e34
fix(tracing): allow disabling tracing through env ( #22050 )
...
We point `tracesDir` inside `test-results`, so it is removed between
test runs, while reused context is still writing there.
To fix the issue, we can now pass `env.PW_TEST_REUSE_CONTEXT`.
References #21993 .
2023-03-29 13:35:31 -07:00
Dmitry Gozman
47e5c02a21
fix(test runner): update default testMatch ( #22006 )
...
The intent of default test match is allowing `example.spec.ts` and
`example.test.ts` files. However, it was also matching `test.example.ts`
that should not be considered a test by default.
Fixes #21979 .
2023-03-27 14:28:44 -07:00
Pavel Feldman
c3d7ffb773
chore(ui): do not print global setup epilogue ( #21976 )
2023-03-24 20:56:45 -07:00
Pavel Feldman
add948cdd0
chore: allow sibling describes with the same name ( #21967 )
...
Fixes https://github.com/microsoft/playwright/issues/21953
2023-03-24 17:09:11 -07:00
Pavel Feldman
79d55b959b
Revert "chore: remove legacy watch mode ( #21944 )" ( #21973 )
...
This reverts commit 86af908fa7 .
2023-03-24 16:41:20 -07:00
Dmitry Gozman
120aaa777e
fix(test runner): do not show TimeoutError for unhandled rejection ( #21971 )
...
Unhandled error/rejection interrupts current test and produces a
TimeoutError for it that should be ignored.
2023-03-24 15:03:49 -07:00
Pavel Feldman
86af908fa7
chore: remove legacy watch mode ( #21944 )
2023-03-23 16:30:42 -07:00
Pavel Feldman
31e70c17be
chore: filter skipped tests ( #21938 )
...
Fixes https://github.com/microsoft/playwright/issues/21918
2023-03-23 13:29:52 -07:00
Max Schmitt
e621e52f89
chore: support TypeScript 5 in TS transformer ( #21925 )
...
Fixes https://github.com/microsoft/playwright/issues/21900
2023-03-23 18:07:02 +01:00
Alex Neo
6947f47f05
feat(html): added labels to test cases and test files ( #21468 )
2023-03-22 14:35:58 -07:00
Pavel Feldman
d9a9bb5a8c
chore: pack codemirror on resize ( #21856 )
2023-03-21 18:20:48 -07:00
Pavel Feldman
1bbe2b4b6a
chore: update test locations when merging ( #21844 )
2023-03-21 12:13:20 -07:00
Pavel Feldman
7ce2b36489
chore(ui): show load errors ( #21843 )
2023-03-21 12:03:26 -07:00
Dmitry Gozman
bea6fa15b2
feat(snapshots): use double-buffer to avoid white flash on hover ( #21828 )
2023-03-21 07:40:54 -07:00
Pavel Feldman
6015dad9db
chore: remove npx playwright ui ( #21823 )
2023-03-20 17:12:17 -07:00
Pavel Feldman
a33cf10696
chore(ui): decorate pending, add time spent ( #21821 )
2023-03-20 17:12:02 -07:00
Pavel Feldman
543c812d2f
chore(ui): queue watch runs ( #21809 )
2023-03-20 13:45:35 -07:00
Dmitry Gozman
73b20bc876
chore: roll stable-test-runner to 1.33.0-alpha-mar-20-2023 ( #21817 )
2023-03-20 13:42:22 -07:00
Dmitry Gozman
8accabdb59
test: gardening ( #21814 )
...
Notable changes:
- `page-event-crash` is not a page test, moving out of page/.
- One of the expect tests is directly covered by another, merging them.
2023-03-20 12:52:52 -07:00
Max Schmitt
4f43db686d
test: class properties with |this| don't work anymore ( #21796 )
...
https://github.com/microsoft/playwright/issues/21794
2023-03-20 16:38:51 +01:00
Max Schmitt
d641caeb6a
Revert "feat(typescript): allow declare for class properties ( #21281 )" ( #21805 )
...
This reverts commit a1ba6757e0 .
https://github.com/microsoft/playwright/issues/21794
2023-03-20 16:37:20 +01:00
Pavel Feldman
001df3a495
chore(ui): follow up to watch, fix win ( #21792 )
2023-03-19 22:52:48 -07:00
Pavel Feldman
754e6edb95
chore: show folders in the tree ( #21789 )
2023-03-19 18:51:09 -07:00
Pavel Feldman
294baaeb44
chore: allow watching all tests ( #21787 )
2023-03-19 14:50:09 -07:00
Pavel Feldman
8a65cf9aac
chore(ui): ui polish / nits ( #21781 )
2023-03-19 12:04:19 -07:00
Pavel Feldman
0728d0f7fb
chore(ui): show test source before running ( #21776 )
2023-03-17 21:34:40 -07:00
Pavel Feldman
22e11a12ab
chore: show snapshots for sync assertions ( #21775 )
2023-03-17 20:20:35 -07:00
Dmitry Gozman
2a2d6c25a4
feat(deps): inherit environment changes from dependencies ( #21771 )
2023-03-17 15:46:52 -07:00
Pavel Feldman
6efb383433
chore: fix and test ui mode stop ( #21769 )
2023-03-17 14:10:25 -07:00
Dmitry Gozman
e856344235
chore: increase timeout for flaky "should stop tracing on requestContext.dispose()" ( #21767 )
2023-03-17 13:33:44 -07:00
Yury Semikhatsky
95e7d3aabc
chore: hide store from public ( #21763 )
2023-03-17 11:50:44 -07:00
Pavel Feldman
49ce561244
chore(ui): add hover-based run test ( #21758 )
2023-03-17 09:43:54 -07:00
Max Schmitt
53d341be01
test: do not pollute stderr with trace-viewer wsEndpoint ( #21748 )
2023-03-17 16:15:20 +01:00
Pavel Feldman
e066ca0713
chore: use test project output dir when showing live trace ( #21735 )
2023-03-16 20:09:09 -07:00
Pavel Feldman
ecd0f927f4
chore: make stacks rendering live in ui mode ( #21728 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-03-16 18:17:07 -07:00
Dmitry Gozman
7879cf30f0
fix(reuse): serial mode with tracing should not throw ( #21726 )
...
Regressed in #19733 .
Fixes #21113 .
2023-03-16 14:32:12 -07:00
Pavel Feldman
c45d8749b0
chore: split trace events into phases ( #21696 )
2023-03-15 22:33:40 -07:00
Dmitry Gozman
455e11c1d9
fix(shards): shard test groups instead of files ( #21638 )
...
Fixes #21497 .
2023-03-14 10:41:37 -07:00
Max Schmitt
a2c96494e0
chore: throw pretty error if rest parameters is used inside fixtures ( #21659 )
...
Fixes https://github.com/microsoft/playwright/issues/21566
2023-03-14 17:35:52 +01:00
Pavel Feldman
f5fa18a279
chore: reimplement filters ( #21647 )
2023-03-13 22:19:31 -07:00
Pavel Feldman
1d870ac407
chore(ui): start adding ui mode tests (2) ( #21608 )
2023-03-13 12:14:51 -07:00
Pavel Feldman
a12e909a40
chore(ui): start adding ui mode tests ( #21601 )
2023-03-12 15:18:47 -07:00
Pavel Feldman
b85d670491
chore(ui): show output on demand ( #21592 )
2023-03-11 11:43:33 -08:00
Dmitry Gozman
21950bc8ce
feat(html reporter): render multiple annotations of the same type together ( #21580 )
...
Multiple annotations are rendered as comma-separated lists. Fixes
#21253 .

2023-03-10 15:26:02 -08:00
Dmitry Gozman
6d27d2c029
fix(test runner): improved fixture teardown timeout error message ( #21572 )
...
The new message looks like this:
```
Test finished within timeout of 500ms, but tearing down "playwright configuration" ran out of time.
Please allow more time for the test, since teardown is attributed towards the test timeout budget.·
```
References #21259 .
2023-03-10 13:45:47 -08:00
Dmitry Gozman
58a23bc7a0
fix(test runner): allow worker-only dynamic imports ( #21545 )
...
Fixes #21409 .
2023-03-10 08:58:26 -08:00
Max Schmitt
c9eac69f2b
fix(types): accept string in expect().toMatch() ( #21454 )
...
Fixes https://github.com/microsoft/playwright/issues/21453
2023-03-07 17:53:50 +01:00
Pavel Feldman
cffb6ac269
chore: move sever/isomorphic to utils/ to use it in client ( #21445 )
2023-03-06 18:49:14 -08:00
Sebastian Silbermann
fbaf56a13f
feat(ct-react): Support React 18 only ( #19814 )
...
BREAKING CHANGE: Drop support for React 17 and earlier
Support for React 17 an earlier is provided by
`@playwright/experimental-ct-react-17`
Closes #19923
2023-03-03 14:28:33 -08:00
Dmitry Gozman
eb3f8bfba8
fix(test runner): do not optimize filtering when sourcemap is present ( #21359 )
...
Fixes #21204 .
2023-03-03 07:49:19 -08:00
Dmitry Gozman
6769a311ed
feat(test runner): error out when one test file imports another ( #21357 )
...
This situation is not supported, and we can now detect it by looking at
collected file dependencies.
Fixes #21270 .
2023-03-02 15:09:50 -08:00
Dmitry Gozman
0b300f455c
fix(test runner): empty dependency should not skip other projects ( #21354 )
...
References #21270 .
2023-03-02 13:32:23 -08:00
Dmitry Gozman
a1ba6757e0
feat(typescript): allow declare for class properties ( #21281 )
...
This enables `allowDeclareFields` flag that allows code like:
```ts
class Foo {
declare prop: string;
}
```
Declaring is a workaround for inheritance vs property initialization
issues.
https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#the-usedefineforclassfields-flag-and-the-declare-property-modifier
For `allowDeclareFields` to work, we have to run
plugin-transform-typescript before plugin-proposal-class-properties and
few others, so this change migrates from preset-typescript that always
runs last to individual plugin-transform-typescript, and reorders some
plugins.
References #21119 .
2023-03-01 16:43:17 -08:00
Yury Semikhatsky
60e5a93832
fix(store): support text and binary values ( #21006 )
2023-03-01 08:49:31 -08:00
Pavel Feldman
de3a5e2a91
chore(trace): include expect steps in a trace ( #21199 )
2023-02-28 13:26:23 -08:00
Pavel Feldman
81bd637d94
chore: merge traces into a single zip file ( #21242 )
2023-02-27 22:31:47 -08:00
Yury Semikhatsky
cfdddcf9ba
fix(runner): finish dispatching if remaining tests were skipped ( #21238 )
...
Fixes #21226
2023-02-27 17:20:30 -08:00
Pavel Feldman
ed41fd0643
chore: use listview to render stack trace ( #21197 )
2023-02-24 15:31:10 -08:00
Max Schmitt
f3a46f7405
feat(html): render annotations as links if needed ( #21165 )
...
Fixes https://github.com/microsoft/playwright/issues/20584
2023-02-23 21:57:02 +01:00
Nowell Strite
000583e048
fix(loader): experimentalLoader with node@18 ( #21106 )
...
There is currently a bug when running `node@18.14.2` when running with
experimentalLoader
```
TypeError: The URL must be of scheme file
at new NodeError (node:internal/errors:399:5)
at Object.fileURLToPath (node:internal/url:1492:11)
at resolve (./node_modules/@playwright/test/lib/experimentalLoader.js:39:48)
at nextResolve (node:internal/modules/esm/loader:163:22)
at ESMLoader.resolve (node:internal/modules/esm/loader:838:24)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:7)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:79:21)
```
This came from my test `vrt.spec.ts` which had a non package import
inside of it
```ts
import fs from "node:fs/promises"
```
The test run failed due to node imports not returning fileUrls when
resolved.
---------
Co-authored-by: Nowell Strite <nstrite@nvidia.com>
2023-02-22 14:28:03 -08:00
Max Schmitt
ae369144b6
chore: consolidate http/https fetching ( #21104 )
...
Fixes https://github.com/microsoft/playwright/issues/20784
Supersedes https://github.com/microsoft/playwright/pull/21076
2023-02-22 17:09:56 +01:00
Pavel Feldman
06fc72b6ed
revert( #12706 ): also fix related bugs it introduced ( #21070 )
2023-02-21 14:15:11 -08:00
Andrey Lushnikov
ce692830b3
fix: filter out comments inside fixture destructuring ( #20989 )
...
Fixes #20944
2023-02-21 12:51:40 -08:00
Dmitry Gozman
24c8d45c70
chore: enable tsc for ttest sources ( #21018 )
2023-02-19 11:18:07 -08:00
Dmitry Gozman
595502ac46
chore: remove unnecessary args in ttest ( #21012 )
2023-02-18 13:08:17 -08:00
Dmitry Gozman
56dbd1fcb0
chore: remove usesCustomOutputDir from tests ( #21011 )
2023-02-18 11:41:41 -08:00
Dmitry Gozman
55f4b670a9
fix(test runner types): allow sync step functions ( #20996 )
2023-02-17 14:26:40 -08:00
Yury Semikhatsky
09be9d6425
feat: key value store backed by filesystem ( #20932 )
...
Keys are used as a relative file path without any sanitization assuming
that the underlying fs will throw on error.
2023-02-16 16:48:28 -08:00
Pavel Feldman
96050a260e
chore(junit): render project as an agent name / hostname ( #20927 )
2023-02-16 07:59:05 -08:00
Dmitry Gozman
6f140d79d4
chore: do not create dummy config file in tests ( #20935 )
2023-02-16 06:56:52 -08:00
Yury Semikhatsky
90c4e6f9b2
chore: revert sharded html report ( #20923 )
...
We've decided not to ship it in the current form.
#10437
2023-02-15 12:38:03 -08:00
Dmitry Gozman
91da67fab1
test: remove magic headers in ttest ( #20867 )
...
Instead, explicitly import from '@playwright/test'.
2023-02-14 19:20:56 -08:00
Pavel Feldman
08be39a80e
fix(watch): fix the tests on win ( #20844 )
2023-02-14 14:55:49 -08:00
Pavel Feldman
7f0763d789
chore: hide watch mode, it is not ready ( #20905 )
2023-02-14 13:22:44 -08:00
Pavel Feldman
798696a18a
chore: fix context reuse disposal ( #20876 )
...
Fixes: https://github.com/microsoft/playwright/issues/20409
2023-02-14 12:56:47 -08:00
Dmitry Gozman
6d03211439
fix(test runner): --list should ignore '.only' annotations ( #20868 )
2023-02-13 11:13:30 -08:00
Andrey Lushnikov
fdcd7b549d
chore: mark comparator option back as experimental ( #20816 )
...
This reverts commit 303c5998f8 .
Reason for revert: I tried enabling `ssim-cie94` by default on
ionic-framework test suite, and it proves to be overly strict for their
usecase.
2023-02-13 11:11:44 -08:00
Joel Einbinder
997dfa9274
fix(reporter): properly indent multiline attachments ( #20847 )
...
Text attachments were only indented on the first line.
2023-02-13 10:28:34 -08:00
Dmitry Gozman
de69b766d9
test: code health in ttest ( #20837 )
...
- Remove duplicate tests.
- Remove unused test helpers.
- Print full watch output on failures.
- Unflake some tests.
2023-02-10 20:26:19 -08:00
Dmitry Gozman
789b1c75e6
fix(expect): report received when timedOut during oneShot ( #20806 )
2023-02-10 14:59:21 -08:00
Pavel Feldman
1ba768bf60
chore: make watch + ct happy ( #20804 )
2023-02-10 08:33:25 -08:00
Pavel Feldman
4469e57695
chore: always grow component bundle ( #20799 )
...
Fixes https://github.com/microsoft/playwright/issues/20581
2023-02-09 18:39:20 -08:00
Pavel Feldman
69c4653c6b
chore: speculative windows cli fix ( #20801 )
2023-02-09 16:04:07 -08:00
Pavel Feldman
e1f287f255
chore: more watch tests ( #20797 )
2023-02-09 16:03:54 -08:00
Pavel Feldman
596ed97791
chore: add more watch tests ( #20793 )
2023-02-09 13:57:00 -08:00
Pavel Feldman
5112abc1d2
chore: fix a racy time-based test ( #20783 )
2023-02-09 08:49:51 -08:00
Pavel Feldman
b247bfe153
test(watch): start adding tests ( #20764 )
2023-02-09 08:31:02 -08:00
Pavel Feldman
7a093329fa
chore: do not run all on watch ( #20758 )
2023-02-08 12:44:51 -08:00
Pavel Feldman
11168efb0e
chore: roll stable-test-runner to ToT ( #20754 )
2023-02-08 10:02:20 -08:00
Yury Semikhatsky
a93cf767a1
feat: html reporter sharded option ( #20737 )
...
Make sharded report feature an opt-in:
```ts
{
reporter: [['html', { sharded: true }]]
};
```
#10437
2023-02-07 22:21:50 -08:00
Pavel Feldman
4259d4e1d6
chore: implement repeat last run ( #20727 )
2023-02-07 15:56:39 -08:00
Pavel Feldman
1b941bcf2e
chore: simplify ttests ( #20733 )
2023-02-07 15:11:44 -08:00
Yury Semikhatsky
f10b29fd5e
feat: show warning when some report shards are missing ( #20731 )
...
When some of the report shards are missing still show the report but
display an error in the status line:

#10437
2023-02-07 14:22:10 -08:00
Yury Semikhatsky
8f53bf7b41
feat: sharded html report ( #20700 )
...
This implementation is based on the [original
PR](https://github.com/microsoft/playwright/pull/19691 ) by @kevin940726.
It makes the reporter produce single file when there is no sharding and
multiple out-of-line report-x-of-y.zip reports which are automatically
merged together when put in one folder.
References https://github.com/microsoft/playwright/issues/10437
Co-authored-by: Kai Hao <kevin830726@gmail.com>
2023-02-07 10:21:26 -08:00
Andrey Lushnikov
303c5998f8
feat: release "comparator" option from experiment ( #20720 )
...
The option defines a comparator to be used to compare images.
Possible values are `"pixelmatch"` and `"ssim-cie94"`.
Note: This reverts commit 8167f8bf54 .
2023-02-07 08:51:48 -08:00
Pavel Feldman
361ea949aa
chore: respect deps when watching files ( #20695 )
2023-02-06 17:09:16 -08:00
Pavel Feldman
b6df48758d
chore: collect test dependencies ( #20645 )
2023-02-06 14:52:40 -08:00
Dmitry Gozman
e64c623e61
feat(expect): strip down Expect types ( #20601 )
...
This only leaves:
- documented assertions;
- asymmetric matchers;
- `resolves`/`rejects`;
- `expect.extend()`;
- `expect.getState()` with selected properties.
References #20432 .
2023-02-03 15:56:31 -08:00
Sam Chen
340cacf4fd
feat: show diff tab by default ( #19820 )
...
Close https://github.com/microsoft/playwright/issues/19803
I had to manually inject `window.playwrightReportBase64` data into
`playwright/packages/html-reporter/index.html` when developing,
wondering if there's any method I don't know.
2023-02-03 10:32:23 -08:00
Andrey Lushnikov
f45f20a8c9
fix: handle not.toPass() with expect.soft inside ( #20596 )
...
Fixes #20518
2023-02-03 09:14:05 -08:00
Dmitry Gozman
3180bc9804
fix(types): make most fixtures non-undefined ( #20573 )
...
Fixes #20416 .
2023-02-02 13:11:50 -08:00
Andrey Lushnikov
4f61105032
fix: swallow expect.soft errors inside successful toPass matcher ( #20509 )
...
Fixes #20437
2023-02-02 10:47:20 -08:00
Dmitry Gozman
5fb430a743
fix(test runner): do not print timeout message upon interrupt ( #20574 )
...
We should only print "Test was interrupted."
Regressed in #18321 .
2023-02-01 19:39:43 -08:00
Dmitry Gozman
f46883e58e
feat(expect): add GenericAssertions documentation ( #20564 )
...
References #20432 .
2023-02-01 16:55:52 -08:00
Pavel Feldman
421dd884a7
chore: implement --no-deps ( #20569 )
2023-02-01 16:32:13 -08:00
Pavel Feldman
635b47025e
chore: expose project dependencies api ( #20546 )
2023-02-01 08:39:07 -08:00
Pavel Feldman
08e4b50ff6
chore: project deps ( #20514 )
2023-01-31 15:59:13 -08:00
Dmitry Gozman
9c6c31a442
fix(types): update PlaywrightTestConfig types ( #20540 )
...
This makes errors more focused on the custom properties.
References #20416 .
2023-01-31 15:02:01 -08:00
Yury Semikhatsky
a03f3223c4
fix: trim long expect messages ( #20517 )
...
Fixes #20324
2023-01-30 17:24:12 -08:00
chimurai
f72d400952
chore: fix typos ( #20473 )
2023-01-30 09:53:28 +01:00
Pavel Feldman
2c27bd3b07
chore: remove plugin registration sink ( #20460 )
2023-01-27 14:36:41 -08:00
Pavel Feldman
f7ff252455
chore: remove addFatalError ( #20383 )
2023-01-25 17:26:30 -08:00
Pavel Feldman
fe1dd7818d
chore: extract task runner for global setup ( #20345 )
2023-01-25 15:38:23 -08:00
Dmitry Gozman
d1fb3a2384
fix(test runner): do not send entirely skipped test groups to a worker ( #20346 )
...
Move TestCase properties calculation from WorkerMain to suite building
phase.
Fixes #20156 .
2023-01-25 12:54:50 -08:00
Dmitry Gozman
b971dd3417
fix(test runner): show deep strack traces during imports ( #20305 )
...
Fixes #20239 .
2023-01-24 08:49:06 -08:00
Pavel Feldman
147bb6b292
chore: run global setup before onBegin ( #20285 )
2023-01-23 17:44:23 -08:00
Pavel Feldman
9f31bcfbab
chore: refactor graceful close, rename to host/main ( #20283 )
2023-01-22 15:04:29 -08:00
Dmitry Gozman
b700c08dc5
feat(screenshots): when actual and expected have different sizes, pad and produce the diff image ( #20208 )
...
Also show sizes in the html report to easier spot the size mismatch
issue.
<img width="1030" alt="diff"
src="https://user-images.githubusercontent.com/9881434/213327632-b8fcd69c-8d08-460c-9de1-b5f4f8c56359.png ">
Fixes #15802 .
2023-01-20 19:41:43 -08:00
Pavel Feldman
7ff27600b4
chore: experimental oop loader ( #20269 )
2023-01-20 18:24:15 -08:00
Dmitry Gozman
eafa6fda13
fix(expect): poll/toPass should not wait over specified timeout ( #20266 )
...
Drive-by: unflake some timeout-dependent tests.
2023-01-20 15:47:24 -08:00
Pavel Feldman
3066ffd577
chore: use fake pool on the runner side ( #20241 )
2023-01-20 08:36:31 -08:00
Pavel Feldman
e08168e16e
chore: temporarily remove project and global setup, store ( #20181 )
2023-01-18 12:56:03 -08:00
Max Schmitt
0656ab4811
chore: roll stable test-runner to 1.30.0-alpha-jan-16-2023 ( #20139 )
2023-01-17 19:23:24 +01:00
Andrey Lushnikov
92375f6333
fix: support import assertions ( #20009 )
...
Fixes #19928
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-01-16 08:26:14 -08:00
Pavel Feldman
d1c161ce99
chore: merge the util exports ( #20110 )
2023-01-13 13:50:38 -08:00
Pavel Feldman
736cf5c585
fix(tsx): resolve .js imports to .tsx as well ( #20092 )
...
Fixes: https://github.com/microsoft/playwright/issues/20039
2023-01-13 10:49:10 -08:00
Pavel Feldman
e065d608b6
chore: introduce defineConfig for easier JS typing ( #20061 )
...
Fixes https://github.com/microsoft/playwright/issues/19694
2023-01-12 13:12:02 -08:00
Yury Semikhatsky
730a197c80
feat: config.globalScripts ( #20062 )
...
Introduce config.globalScripts. Tests from the matching files will run
before all projects. We'll only allow beforeAll/afterAll instead of
tests in such files (next PR).
Global scripts are executed as part of 'Global Scripts' project which is
not present in FullConfig.projects but may be referenced by
corresponding global setup Suites.
Signed-off-by: Yury Semikhatsky <yurys@chromium.org>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-01-12 13:02:54 -08:00
Max Schmitt
e2a2196e6a
chore(html-reporter): show project name always for the test file ( #19905 )
...
Fixes https://github.com/microsoft/playwright/issues/19874
2023-01-10 17:11:38 +01:00
Dmitry Gozman
28577afde4
feat(soft expect): mark steps with failed soft expects as failed ( #19973 )
...
Fixes #19673 .
2023-01-09 16:17:06 -08:00
Yury Semikhatsky
a39a97f0ee
chore: setup -> test.projectSetup ( #19932 )
...
* Changed `setup` to `test.projectSetup`
* Only `test.projectSetup.only` is supported on the new method
* test.* methods except for before/after/Each/All hooks can be called
inside the project setup files
2023-01-09 11:21:48 -08:00
Dmitry Gozman
31a63b5c2a
fix(reuse): make reuse work with tracing ( #19733 )
...
Fixes #19059 .
2023-01-05 14:50:47 -08:00
Andrey Lushnikov
1afa38d5a7
chore(expect): extract polling from expect.poll and expect().toPass ( #19882 )
...
This extracts & unifies polling machinery from `expect.poll` and
`expect.toPass` methods.
2023-01-05 11:14:37 -08:00
Dmitry Gozman
388a3e1f37
fix(test runner): make sure to run afterAll after skipped tests ( #19878 )
...
Fixes #19745 .
2023-01-04 14:13:49 -08:00
Dmitry Gozman
6193e6d8ea
fix(reuse): reset tracing ( #19876 )
...
References #19059 .
2023-01-04 13:19:05 -08:00
Grant Colestock
a30aac5668
fix: make sure jsx fragments are transformed ( #19755 )
...
Fixes : #19142
2022-12-31 11:08:36 -08:00
Sander
b363902e1b
feat(ct): https ( #19697 )
2022-12-28 17:04:23 -08:00
Dmitry Gozman
5cdf118a42
fix(reuse): disable trace/video when reusing the context ( #19764 )
...
Previously, we disabled reuse when trace/video was on. Component testing
keeps this behavior.
References #19059 .
2022-12-28 16:58:34 -08:00
Yury Semikhatsky
137070d889
Revert "chore: hide setup, store, TestProject.setupMatch, storageStat… ( #19756 )
...
…eName (#19442 )"
This reverts commit 92dd734e04 .
2022-12-28 15:39:31 -08:00
Pavel Feldman
233664bd30
chore: report more fatal errors via reporter ( #19640 )
2022-12-22 17:31:02 -08:00
Ross Wollman
06c7f1fb6c
fix(html): test and fix reporter timing display ( #19670 )
...
#19576 introduced a regression where the CLI reporters displayed some
times with way too many decimals. e.g. 7.123456789ms.
Prior to #19576 , there were two monotonicTime implementations; that PR
updated the reporters to use the common definition that had existed in
utils.ts. However, that introduced a regression in the base.ts reporters
which used the ms duration humanizing package which did not account for
the more precise decimals used by the shared monotonicTime function.
This fix removes the dependency on the third-party ms package and now
consistently uses Pavel's humanize function which the HTML reporter had
been using and proved to have better defaults for decimals.
Additionally, we add more test coverage to limit future regressions
since this was caught in passing.
Closes #19556 .
Relates #19576 .
2022-12-22 15:57:55 -08:00
Dmitry Gozman
b8848fb499
fix(test runner): make sure undefined options in config result in default values ( #19632 )
...
Note: this keeps existing behavior of `undefined` in `test.use()`
reverting to the config value and not to the original default value.
References #19615 .
2022-12-21 14:34:43 -08:00
Dmitry Gozman
eaae8ebbf3
chore: throw InvalidSelectorError from selector parser, add some tests ( #19636 )
2022-12-21 14:27:35 -08:00
Dmitry Gozman
d12bc0be9a
fix(screenshot): account for screenshot === undefined ( #19627 )
2022-12-21 10:16:36 -08:00
Pavel Feldman
675f0eb4a0
chore: report error location for fatal errors ( #19610 )
2022-12-21 09:36:59 -08:00
Ross Wollman
0844394270
feat(html): display overall duration ( #19576 )
...
<img width="1390" alt="Screenshot 2022-12-19 at 4 15 33 PM"
src="https://user-images.githubusercontent.com/11915034/208552484-c0127615-d2c6-414f-ae3b-e7836553d890.png ">
* Adds duration (time ellapsed from `onBegin` to `onEnd`); roughly
equivalent to `time npx playwright test …`.
* Removes cumulative per-file time
Resolves #19566 .
2022-12-20 14:13:10 -08:00
Andrey Lushnikov
d7e7cab44a
fix: properly handle negated timed-out toPass matcher ( #19580 )
2022-12-20 08:41:32 -08:00
Han Yeong-woo
00ffd74727
fix(runner): import export assignment from ts ( #19559 )
2022-12-19 14:41:29 -08:00
Vladimir Semenov
467d9f37fc
feat(reporter): Add parallelIndex field to TestResult ( #19570 )
2022-12-19 14:37:04 -08:00
Pavel Feldman
0e2732decf
feat(api): introduce expect().toPass ( #19463 )
2022-12-14 19:23:13 -08:00
Andrey Lushnikov
8167f8bf54
chore: hide "comparator" option from documentation and types ( #19441 )
2022-12-14 09:58:19 -08:00
Yury Semikhatsky
92dd734e04
chore: hide setup, store, TestProject.setupMatch, storageStateName ( #19442 )
2022-12-13 22:48:38 -08:00
Dmitry Gozman
ab9602bebf
chore: remove unused PW_TEST_OUT_OF_PROCESS_DRIVER ( #19434 )
2022-12-13 16:04:44 -08:00
Fernando Garcia Llorente
cd4ccdfa29
feat: allow options in automatic screenshots ( #19143 )
...
Closes #9983
Allowing Automatic Screenshots in `PlaywrightTestConfig` to have
`fullPage` & `omitBackground` as optional parameters.
2022-12-07 08:45:33 -08:00
Dmitry Gozman
d294c5da33
chore: roll stable-test-runner to 1.28.1 ( #19310 )
...
This required `allowJs: false` in our `tsconfig.json` due to the
following error:
```
Error: Cannot find module './utilsBundleImpl'
Require stack:
- <playwright>/packages/playwright-core/src/utilsBundle.ts
- <playwright>/packages/playwright-test/lib/reporters/html.js
- <playwright>/tests/playwright-test/reporter-html.spec.ts
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/loader.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/runner.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/playwright-core/lib/cli/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/playwright-core/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/cli.js
at ../../packages/playwright-core/src/utilsBundle.ts:20
18 | import path from 'path';
19 |
> 20 | export const colors: typeof import('../bundles/utils/node_modules/colors/safe') = require('./utilsBundleImpl').colors;
| ^
21 | export const debug: typeof import('../bundles/utils/node_modules/@types/debug') = require('./utilsBundleImpl').debug;
22 | export const getProxyForUrl: typeof import('../bundles/utils/node_modules/@types/proxy-from-env').getProxyForUrl = require('./utilsBundleImpl').getProxyForUrl;
23 | export const HttpsProxyAgent: typeof import('../bundles/utils/node_modules/https-proxy-agent').HttpsProxyAgent = require('./utilsBundleImpl').HttpsProxyAgent;
at Object.<anonymous> (<playwright>/packages/playwright-core/src/utilsBundle.ts:20:83)
at Object.<anonymous> (<playwright>/packages/playwright-test/src/reporters/html.ts:17:1)
```
2022-12-06 15:46:19 -08:00
Yury Semikhatsky
beb15bb504
chore: rename setup => setupMatch ( #19309 )
2022-12-06 14:55:22 -08:00
Yury Semikhatsky
1b3e53697b
chore: TestStorage => TestStore ( #19308 )
2022-12-06 13:33:43 -08:00
Yury Semikhatsky
3c1b26b9f1
feat: make storage a global variable ( #19283 )
2022-12-05 21:37:37 -08:00
Yury Semikhatsky
f9ef18912d
feat: use setup() instead of test() for project setup ( #19281 )
2022-12-05 18:15:01 -08:00
Andrey Lushnikov
6d82460a02
feat: implement a new image comparison function ( #19166 )
...
This patch implements a new image comparison function, codenamed
"ssim-cie94". The goal of the new comparison function is to cancel out
browser non-determenistic rendering.
To use the new comparison function:
```ts
await expect(page).toHaveScreenshot({
comparator: 'ssim-cie94',
});
```
As of Nov 30, 2022, we identified the following sources of
non-determenistic rendering for Chromium:
- Anti-aliasing for certain shapes might be different due to the
way skia rasterizes certain shapes.
- Color blending might be different on `x86` and `aarch64`
architectures.
The new function employs a few heuristics to fight these
differences.
Consider two non-equal image pixels `(r1, g1, b1)` and `(r2, g2, b2)`:
1. If the [CIE94] metric is less then 1.0, then we consider these pixels
**EQUAL**. (The value `1.0` is the [just-noticeable difference] for
[CIE94].). Otherwise, proceed to next step.
1. If all the 8 neighbors of the first pixel match its color, or
if the 8 neighbors of the second pixel match its color, then these
pixels are **DIFFERENT**. (In case of anti-aliasing, some of the
direct neighbors have to be blended up or down.) Otherwise, proceed
to next step.
1. If SSIM in some locality around the different pixels is more than
0.99, then consider this pixels to be **EQUAL**. Otherwise, mark them
as **DIFFERENT**. (Local SSIM for anti-aliased pixels turns out to be
very close to 1.0).
[CIE94]: https://en.wikipedia.org/wiki/Color_difference#CIE94
[just-noticeable difference]:
https://en.wikipedia.org/wiki/Just-noticeable_difference
2022-12-02 15:22:05 -08:00
Dmitry Gozman
6471e8536e
feat(test runner): support jsconfig.json's baseUrl+paths ( #19219 )
...
Fixes #19129 .
2022-12-01 16:42:25 -08:00
Dmitry Gozman
b1b21bdac5
fix(shards): zero-sized shard should not include all tests ( #19148 )
...
Fixes #19073 .
2022-11-29 16:02:11 -08:00
Dmitry Gozman
23e02dd006
test: unflake some timeout-dependent tests ( #19139 )
2022-11-29 12:54:53 -08:00
Shubham Kanodia
3d804ff7cd
chore: rewrite error message for missing snapshot ( #19104 )
2022-11-29 12:51:15 -08:00
Yury Semikhatsky
31d45ad4dc
chore(runner): add all setup files in separate pass ( #18978 )
2022-11-22 16:22:48 -08:00
Dmitry Gozman
503f8f51dc
fix(reuse): stop pending operations upon reuse/disconnect ( #18997 )
2022-11-22 15:21:20 -08:00
Yury Semikhatsky
2dc51f6c46
fix(runner): run all setup files when there is test.only ( #18967 )
2022-11-21 16:33:23 -08:00
Yury Semikhatsky
e1189a96b6
feat(runner): run all setup files if none matched the filter ( #18922 )
...
The behavior regarding filters (both in config, command line and .only)
is the following:
- if some of tests match and none of setup match then we'll run all
setup files and all matching tests
- otherwise the filters apply to setup files the same way as to regular
tests
2022-11-21 09:23:28 -08:00
Yury Semikhatsky
c0d0f54a12
feat(runner): allow filtering setup and tests ( #18900 )
...
Running `npx playwright test file:123` will have the following behavior
- if only test files match then only matching subset of tests will run
but all setup files will run as well
- if only setup files match the filter then only those setup tests will
run
- if both setup and test files match an error will be thrown
2022-11-18 11:35:29 -08:00
Dmitry Gozman
1ec0bb277d
feat(expect): ensure at least one expectation check, no matter the timeout ( #18895 )
...
References #18859 .
2022-11-17 19:43:10 -08:00
Yury Semikhatsky
0f4b67bc6d
test(cli): setup files are in list-files and test --list output ( #18890 )
2022-11-17 16:31:04 -08:00
Pavel Feldman
4e58b0c2ea
chore: render timed out error message when expect timeouts ( #18863 )
...
Fixes https://github.com/microsoft/playwright/issues/18859
2022-11-16 17:00:42 -08:00
Yury Semikhatsky
05fb3e6de8
Revert "chore: hide TestProject.setup and TestInfo.storage ( #18800 )" ( #18836 )
...
Now that the patch has been cherry-picked to the release branch
reverting it on main.
This reverts commit 6deba5dc21 .
2022-11-16 11:23:10 -08:00
Yury Semikhatsky
6deba5dc21
chore: hide TestProject.setup and TestInfo.storage ( #18800 )
2022-11-14 17:03:01 -08:00
Andrey Lushnikov
f3a99fdd69
chore: address API review comments for the snapshotPathTemplate ( #18716 )
...
This patch:
- updates documentation to lead users from `TestConfig.snapshotDir` and
`testInfo.snapshotSuffix` to `TestConfig.snapshotPathTemplate` as a
better and more flexible alternative.
- drops `{snapshotSuffix}` from documentation
- stops using `snapshotSuffix = ''` in our own tests and switches us
to the `snapshotPathTemplate`.
- adds `{testName}` token.
2022-11-10 17:23:57 -08:00
Andrey Lushnikov
db826c9c8c
chore: drive-by fixes for the snapshotPathTemplate ( #18715 )
...
- Use `snapshotPathTemplate` for docker screenshots in html-reporter
- Mark the snapshot path template test as slow since it re-spawns
worker for each project.
- Fix docker smoke tests
2022-11-10 15:50:13 -08:00
Dmitry Gozman
194abc35cd
Revert #18561 "feat(test runner): test.reset() to reset options to default/config value" ( #18704 )
...
This reverts commit 6fef227f43 .
Not shipping in 1.28.
2022-11-10 14:45:05 -08:00
Andrey Lushnikov
6d491f928d
feat(playwright-test): introduce snapshotPathTemplate configuration ( #18568 )
...
This configuration option allows to set a string with template
values for precise control over snapshot path location.
An example of `snapshotPathTemplate` usage:
```ts
// playwright.config.ts
// Notice the `testDir` configuration!
export default {
testDir: './tests',
snapshotPathTemplate: './__screenshots__/{platform}/{projectName}/{testFilePath}/{arg}{ext}',
}
```
Currently supported "magic tokens" inside the `snapshotPathTemplate`
are:
- `{testDir}` - project's `testDir`
- `{snapshotDir}` - project's `snapshotDir`
- `{platform}` - `process.platform`
- `{projectName}` - Project's sanitized name
- `{testFileDir}` - Directories in relative path from `testDir` to test
file path (e.g. `page/` in the example below)
- `{testFileName}` - Test file name (with extension) (e.g.
`page-click.spec.ts` in the example below)
- `{testFilePath}` - Relative path from `testDir` to test file path
(e.g. `page/page-click.spec.ts` in the example below)
- `{ext}` - snapshot extension (with dots)
- `{arg}` - joined snapshot name parts, without extension (e.g.
`foo/bar/baz` in the example below)
- `{snapshotSuffix}` - `testInfo.snapshotSuffix` value.
Consider the following file structure:
```
playwright.config.ts
tests/
└── page/
└── page-click.spec.ts
```
The following `page-click.spec.ts`:
```ts
// page-click.spec.ts
import { test, expect } from '@playwright/test';
test('should work', async ({ page }) => {
await expect(page).toHaveScreenshot(['foo', 'bar', 'baz.png']);
});
```
Fixes #7792
2022-11-09 15:29:07 -08:00
Andrey Lushnikov
9bcb28f25a
Revert "feat: send SIGTERM to webserver before SIGKILL'ing it. ( #18220 )" ( #18661 )
...
This reverts commit c63a0b536d .
Reason: https://github.com/microsoft/playwright/pull/18564
2022-11-09 09:18:33 -08:00
Yury Semikhatsky
d5494edf71
feat(runner): TestOptions.storageStateName ( #18587 )
2022-11-07 16:27:38 -08:00
Dmitry Gozman
9172a2ca5a
test: use strict png comparator in tests ( #18622 )
2022-11-07 13:32:46 -08:00
Dmitry Gozman
6a65a43e9a
chore: use consistent asLocator() in all logs ( #18586 )
...
References #18524 .
2022-11-04 15:19:16 -07:00
Yury Semikhatsky
25dc0bfacb
feat(runner): change storage fixture to TestInfo.storage() ( #18584 )
2022-11-04 14:28:25 -07:00
Yury Semikhatsky
a9c15a25f8
test: storageState from config key ( #18581 )
2022-11-04 13:10:33 -07:00
Dmitry Gozman
6fef227f43
feat(test runner): test.reset() to reset options to default/config value ( #18561 )
2022-11-04 09:03:29 -07:00
Yury Semikhatsky
c8cd07594c
feat(runner): initialize context.storageState from storage entry ( #18549 )
2022-11-03 14:20:39 -07:00