420 Commits

Author SHA1 Message Date
Dmitry Gozman
32e25a252b
chore: mark v1.46.0-next (#31324) 2024-06-14 18:22:42 -07:00
Dmitry Gozman
fce2874796
feat(types): export PageAssertionsToHaveScreenshotOptions type (#31319)
Fixes #31089.
2024-06-14 09:39:21 -07:00
Dmitry Gozman
b9106a4c42
fix(test runner): do not use @babel/plugin-transform-dynamic-import (#31285)
Historically, this plugin was important to translate dynamic imports
into require calls so that we can intercept them and transpile.

This is not needed anymore with ESM loader enabled by default, so we can
avoid this transformation and support dynamic imports of ESM-only
packages/files.

Fixes #17075, fixes #23255, fixes #31140, references #23662.
2024-06-13 06:18:44 -07:00
dependabot[bot]
f63b0252c9
chore(deps): bump braces from 3.0.2 to 3.0.3 in /packages/playwright/bundles/utils (#31264) 2024-06-12 22:22:35 +02:00
Yury Semikhatsky
f1475fa644
chore: trim multiline step titles to first line (#31269)
Fixes https://github.com/microsoft/playwright/issues/31266
2024-06-12 08:24:12 -07:00
Pavel Feldman
cf400a6080
Revert "feat(test runner): shuffle order of tests with sharding seed … (#31260)
…(#30817)"
2024-06-11 16:05:35 -07:00
Pavel Feldman
732e7393d3
Revert "feat(test): add URL field to annotations for hyperlink disp… (#31259)
…lay (#30665)"
2024-06-11 16:05:21 -07:00
Lee Byonghun
abaddc01c9
fix: throw error when workers option is not number or percentage (#31210) 2024-06-10 11:27:54 +02:00
Pavel Feldman
f97d87ea5a
docs: fix the api review typos (#31071) 2024-05-30 12:15:52 -07:00
Mathias Leppich
5708148496
fix(merge-reports): only change test ids when needed (#31061)
When merging blob reports test ids are patched to make sure there is no
collision when merging reports that might have overlapping test ids.
However, even if you were merging reports that had no overlapping ids,
all test ids will be modified, which is an undesirable side effect.

This PR only modify test ids when the same test id has already been used
in a previous blob report.

----

This change is also part of
https://github.com/microsoft/playwright/pull/30962
2024-05-30 11:29:20 -07:00
Dmitry Gozman
ba5b460444
chore: move artifacts recording to TestLifecycleInstrumentation (#30935)
The spirit of this change is reverting #23153. Since that time, we have
moved tracing and `artifactsDir` lifetime into the test runner, so the
reason for revert is mitigated.

Fixes #30287, fixes #30718, fixes #30959.
2024-05-29 18:05:17 -07:00
Mathias Leppich
6e9c31f93b
fix(runner): don't write last run info when listing tests (#31062) 2024-05-29 09:07:40 -07:00
Yury Semikhatsky
a11a6d9874
fix(blob): make sure tele reporters do not override ids (#31056)
Fixes https://github.com/microsoft/playwright/issues/31023
2024-05-28 16:37:11 -07:00
Pavel Feldman
6675652269
chore: split client-side instrumentation into sync and async (#31054) 2024-05-28 14:29:57 -07:00
Max Schmitt
63fd28e038
docs(grep): contains tags (#31042) 2024-05-28 19:30:47 +02:00
Ernst de Jong
ef023c4f40
chore(types): fix typo in screenshot mode (#31047) 2024-05-28 16:14:21 +02:00
Yury Semikhatsky
9884c851ff
feat(expect): expose expect timeout (#30969)
Fixes https://github.com/microsoft/playwright/issues/30583
2024-05-24 08:56:43 -07:00
Yury Semikhatsky
2cbd7b78ea
chore: change expect.getState() return type to unknown (#30989)
Eventually we would like to remove this method altogether.
2024-05-23 14:06:59 -07:00
Yury Semikhatsky
f7b0490500
chore: remove references to jest expand (#30988)
Since https://github.com/microsoft/playwright/pull/7722 we always set
expand to false
[here](a106428114/packages/playwright/src/matchers/expect.ts (L176))
and don't expose any means to change that (in jest it's
expect.setState).
2024-05-23 13:44:15 -07:00
Yury Semikhatsky
a106428114
feat(config): respectGitIgnore option (#30972)
Fixes https://github.com/microsoft/playwright/issues/30553
2024-05-23 12:05:02 -07:00
Mathias Leppich
825e0e466e
feat(test runner): shuffle order of tests with sharding seed (#30817) 2024-05-22 16:22:09 -07:00
Dmitry Gozman
eed6a10f3f
fix(tracing): speed up trace recording (#30946)
This includes two major changes:
- reuse `SerializedFS` for live test runner tracing;
- merge scheduled `appendFile` operations into a single `fs` call.

In some cases, this improves performance of UI mode by 61% and
performance of `trace: on` mode by 38%. Note that performance
improvement on the average test will not be as noticeable.

References #30875, #30635.
2024-05-22 15:19:32 -07:00
Max Schmitt
cfc9623a79
fix(vscode): keep config order in vscode extension project dropdown (#30954)
Relates https://github.com/microsoft/playwright/issues/30936
2024-05-22 22:18:03 +02:00
Pavel Feldman
7b27fc3916
chore: pass outputDir to uimode (#30941)
Fixes https://github.com/microsoft/playwright/issues/30886
2024-05-21 14:36:31 -07:00
오소현
165ecac5df
feat(test): add URL field to annotations for hyperlink display (#30665) 2024-05-21 12:46:38 -07:00
Dmitry Gozman
6290af3a08
feat(reporters): align and document environment variables (#30912)
- Documents `PLAYWRIGHT_FORCE_TTY` and `FORCE_COLOR` across terminal
reporters.
- New `PLAYWRIGHT_LIST_PRINT_STEPS`. Removes undocumented test-only
`PW_TEST_DEBUG_REPORTERS_PRINT_STEPS`.
- Replaces `PLAYWRIGHT_HTML_REPORT` with `PLAYWRIGHT_HTML_OUTPUT_DIR`
and `PW_TEST_HTML_REPORT_OPEN` with `PLAYWRIGHT_HTML_OPEN` for
consistency, supports older versions for backwards compatibility.
- New `PLAYWRIGHT_HTML_HOST`, `PLAYWRIGHT_HTML_PORT` and
`PLAYWRIGHT_HTML_ATTACHMENTS_BASE_URL`.
- New `PLAYWRIGHT_JUNIT_STRIP_ANSI` and
`PLAYWRIGHT_JUNIT_INCLUDE_PROJECT_IN_TEST_NAME`.
- Removes `PW_HTML_REPORT` that was set for unknown reason.
2024-05-21 10:46:52 -07:00
Dmitry Gozman
4ad94c1a8c
chore: print friendly localhost address from http server (#30853) 2024-05-17 08:55:12 -07:00
Dmitry Gozman
89cdf3d56e
feat: env.PLAYWRIGHT_FORCE_TTY to control reporters' tty (#30834)
Previously, terminal reporters consulted `process.stdout.isTTY`. Now it
is possible to control the tty behavior:
- `PLAYWRIGHT_FORCE_TTY=0` or `PLAYWRIGHT_FORCE_TTY=false` to disable
TTY;
- `PLAYWRIGHT_FORCE_TTY=1` or `PLAYWRIGHT_FORCE_TTY=true` to enable TTY,
defaults to 100 columns when real columns are unavailable;
- `PLAYWRIGHT_FORCE_TTY=<number>` to force enable TTY and set the
columns.

Fixes #29422.
2024-05-15 15:01:52 -07:00
Pavel Feldman
8dec672121
chore(testServer): accept video parameter when running tests (#30832) 2024-05-15 12:45:57 -07:00
Dmitry Gozman
5fa0583dcb
fix(test runner): regular worker termination finishes long fixtures (#30769)
Previously, terminating worker always had a 30 seconds force exit.

Now, regular worker termination assumes that process will eventually
finish tearing down all the fixtures and exits. However, the
self-destruction routine keeps the 30 seconds timeout to avoid zombies.

Fixes #30504.
2024-05-15 10:37:36 -07:00
Joe-Hendley
6ae5cd3824
feat: implement flag to fail flaky tests (#30618)
Implements feature requested in
https://github.com/microsoft/playwright/issues/30457

The test runner treats flaky tests as failures when the flag is enabled,
but still reports flaky tests as flaky in the reporting interface. It
feels like something worth discussing as this behaviour makes sense to
me, but looked a bit odd to @BJSS-russell-pollock when I ran this past
him.

Closes #30457.
2024-05-15 09:10:10 -07:00
Pavel Feldman
7a588e6c72
chore: do not close the reused context when video is on (#30807)
Fixes https://github.com/microsoft/playwright/issues/30779
2024-05-15 09:05:06 -07:00
Yury Semikhatsky
fb319e6d3d
fix: match client step and server action by explicit stepId (#30641)
Matching bu `apiName@wallTime` fails when two actions start at the same
time, e.g. two parallel api requests. Moreover, it results in trace
actions that have parent set to themselves, which in turn causes
infinite loop in the trace viewer. To avoid this problems we write
stepId explicitly to the library trace and use those step ids to find
corresponding test runner steps.

The stepId is passed via zone in case of expect, because the protocol
step is quite deep in the call chain after or explicitly in case of API
call steps created by the test runner instrumentation.
2024-05-14 12:10:46 -07:00
Yury Semikhatsky
873f3a03ac
chore(trace): add context create event for test runner (#30697)
Adding metadata event to the test.trace to simplify time computation
logic.
2024-05-14 09:00:33 -07:00
Dmitry Gozman
776b04e5ea
feat: APIRequestContext dispose reason (#30765)
Similarly to page.close, we pass test-runner specific reason to
facilitate better error messages.

```
  1) a.test.ts:10:11 › test

    Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.
      - Recommended fix: use a separate { request } in the test.
      - Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.
    See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.

       9 |
      10 |       test('test', async () => {
    > 11 |         await context.fetch('http://example.com');
         |                       ^
      12 |       });
      13 |
```

Closes #29260.
2024-05-13 18:51:30 -07:00
Viktor Szépe
150cbcbdf3
chore: fix typos (#30645) 2024-05-08 19:40:03 +01:00
Max Schmitt
a0938fc7a4
chore: set minimum Node.js requirement to 18 (#30684) 2024-05-08 17:41:27 +01:00
ggorlen
2d7b1480b2
docs(reporters): wrap reporter in array, fixing typo in docs (#30686) 2024-05-07 11:16:21 +00:00
jonghoonpark
a6488c4a28
fix(html-reporter): add filter for anonymous describe (#30621)
related issue: https://github.com/microsoft/playwright/issues/30475

## Motivation:
On https://github.com/microsoft/playwright/issues/30475, we found that
anonymous describe is rendered in html report

## Modification:
Make filter for anonymous describe

## Result:
anonymous describe will be filtered out.
Not render empty describe
Close https://github.com/microsoft/playwright/issues/30475 issue
2024-05-02 09:54:44 -07:00
georg.dev
8173cdc485
fix(reporters): improve detection of output folder clashes (#30607)
When comparing `outputDir` and html-reporter `outputFolder`, we now make
sure that both paths end with a forward-slash.

Fixes #28677

---------

Co-authored-by: Georg Unterholzner <georg.unterholzner@dynatrace.com>
2024-05-02 08:32:57 -07:00
Yury Semikhatsky
3b7c4fac22
chore: add common env vars for junit and json reporters (#30611) 2024-05-01 10:16:49 -07:00
Yury Semikhatsky
ad0938c659
chore: mark 1.45.0-next (#30598) 2024-04-29 17:19:05 -07:00
Pavel Feldman
fb90797d73
fix(last-run): remove globalOutputDir (#30571) 2024-04-29 09:02:54 -07:00
Dmitry Gozman
ab3df111c9
chore: remove TeleTestCase._resultsMap (#30567) 2024-04-26 10:11:01 -07:00
Tan Li Hau
194479d90e
fix: pass key attribute from jsx to component test (#30426)
When using the `key` attribute in jsx inside the test modules, it is not
serialised and passed to the browser in component test
2024-04-26 09:49:44 -07:00
Yury Semikhatsky
3643fd456b
feat: outputFile option and PLAYWRIGHT_BLOB_OUTPUT_FILE env for blob (#30559)
Reference https://github.com/microsoft/playwright/issues/30091
2024-04-26 09:33:53 -07:00
Dmitry Gozman
6d20da568e
feat: expect(locator).toHaveRole(role) (#30555)
References #13517. Fixes #18332.
2024-04-25 15:26:10 -07:00
Yury Semikhatsky
9a1b34a4b0
Revert "fix: shut down workers before reporter.onEnd (#30329)" (#30551)
This reverts commit 3cea17abb6c8d7371a6d4dd913f714c427ea0fa0.

Reference https://github.com/microsoft/playwright/issues/30550

The test is preserved but marked as fixme.
2024-04-25 14:21:54 -07:00
Dmitry Gozman
086ea79c25
chore: remove checkCoverage script (#30552)
We do not benefit from it for many years already.
2024-04-25 14:00:14 -07:00
Dmitry Gozman
dc0665210f
fix(reporters): properly determine flaky status for serial mode (#30529)
There are plenty of edge cases in this area:
- interrupted test run;
- did not run because of serial mode failure;
- failed before `test.skip()` call (e.g. in `beforeEach`) in one of the
retries;
- and more...

Related issues: #28322, #28321, #27455, #17652.
Prior changes: #27762, #26385, #28360, probably more.

There is still some duplication between `outcome()` and similar logic in
`base.ts`, which might be deduped in a follow-up.

Fixes #28322.
2024-04-25 13:39:14 -07:00