Commit graph

190 commits

Author SHA1 Message Date
Sidharth Vinod 96dbee8208
chore: fix reuseBrowserContextStorage spelling typo (#9296) 2021-10-04 18:32:50 +02:00
Sidharth Vinod be30f9f1c4
feat(test-runner): Add GitHub Actions reporter (#9191) 2021-10-04 10:32:56 +02:00
Pavel Feldman 913821f675
chore: roll Electron to 12.2.1 (#9271) 2021-10-01 19:40:47 -07:00
Nick Partridge b126a5685b
feat: add path option to toMatchSnapshot (#9156) 2021-10-01 09:15:44 -07:00
Max Schmitt e674d873a3
feat(test-runner): add reuse context mode to share a single context between tests (#9115) 2021-10-01 09:16:03 +02:00
Dmitry Gozman 5e3ad63b42
fix(test runner): do not write missing snapshot until the last retry (#9246)
This prevents future retries from passing because of the actual
snapshot being written.

In theory, we can avoid running the retry since it should fail anyway.
However, this brings problems, for example in the `describe.serial` mode
where running a test also has some side effects and so it should not be
skipped. Since running a test without a snapshot is rare, it should be
fine to retry it.
2021-09-30 16:44:52 -07:00
Sidharth Vinod fcb7d2b15a
feat(reporters): Add error position to JSON Report (#9151) 2021-09-30 14:18:36 -07:00
Max Schmitt cf12a1a97e
chore: upgrade commander.js to version 8 (#9230) 2021-09-30 12:24:24 +02:00
Pavel Feldman f78302e8dd
fix(toBeHidden): return true to missing elements (#9205) 2021-09-28 17:11:04 -07:00
Dmitry Gozman 0a690778e4
fix(expect): beautiful expect stacks (#9204)
We now mark our wrapper as `__PWTRAP__[expect.toHaveText]` and
find it later in the stack trace.

Added trace/inspector tests to ensure this behavior in the future.
2021-09-28 16:02:34 -07:00
Dmitry Gozman ed9b42a92d
feat(test runner): collect test error from worker teardown (#9190)
When the test fails (usually with timeout), we wait until all hooks are run
and worker scope is teared down before reporting test end result.

This allows us to collect any error details populated by teardown
in addition to the "timed out" message.
2021-09-28 10:56:50 -07:00
Dmitry Gozman 9a94ccaf0f
chore(test runner): remove DonePayload.failedTestId (#9186)
We now track failed tests on the dispatcher side.
This is a preparation for capturing more errors from
afterAll and worker teardown and attributing them to the last test.
2021-09-27 21:38:19 -07:00
Dmitry Gozman fa536786f2
fix(test runner): proper serial mode with beforeAll/afterAll failures (#9183) 2021-09-27 15:58:26 -07:00
Dmitry Gozman 8dc8777ab4
feat(expect): toContainText(array) (#9160)
This matches when each expected item from the array
is matched to one of the resolved elements, in order.
Note this performs both "sub-array" and "substring" matching.

Drive-by: documentation fixes.
Drive-by: added "selector resolved to 3 elements" log line
when expecting arrays.
2021-09-27 11:14:35 -07:00
Max Schmitt cd22072685
chore: enable object-curly-spacing in ESLint (#9168) 2021-09-27 18:58:08 +02:00
Pavel Feldman 241411ad42
chore: render expect in trace viewer (#9141) 2021-09-27 09:19:59 -07:00
Max Schmitt 4573ce0cf8
chore(test-runner): launch -> webServer (#9167) 2021-09-27 11:32:57 +02:00
Dmitry Gozman f4aaebfba0
fix(expect): produce "waiting for selector" log, corner cases (#9140) 2021-09-24 18:55:45 -07:00
Pavel Feldman db6c55af51
chore: add a test for the log scale polling (#9136) 2021-09-24 12:54:33 -07:00
Pavel Feldman 1db41c330a
chore: migrate remaining expect to protocol (#9121) 2021-09-24 11:06:30 -07:00
Pavel Feldman 0908dc98c8
chore: migrate expect(locator).toMatchText to protocol (#9117) 2021-09-23 16:46:46 -07:00
Joel Einbinder 40ae28e3bb
feat(test runner): add some fixture debugging (#8918) 2021-09-23 11:56:39 -04:00
Dmitry Gozman 568ec05a97
fix(junit): produce a single system-out entry (#9091)
Instead of multiple `system-out` entries we produce a single one
with concatenated content. This is compatible with various junit xml
parsers in the wild.
2021-09-22 15:28:57 -07:00
Max Schmitt f9c5279c3a
fix(test-runner): toHaveURL respect baseURL (#9050) 2021-09-21 21:41:24 +02:00
Pavel Feldman 63ff405e6e
fix(inspector): stop on all snapshottable actions (#8990) 2021-09-17 15:24:15 -07:00
Dmitry Gozman 43213614a1
fix(test runner): after hooks step should not be nested (#8969) 2021-09-16 15:51:27 -07:00
Andrey Lushnikov 4f762ba90a
feat: introduce experimental general-purpose grid (#8941)
This patch adds a general-purpose grid framework to parallelize
Playwright across multiple agents.

This patch adds two CLI commands to manage grid:

- `npx playwright experimental-grid-server` - to launch grid
- `npx playwrigth experimental-grid-agent` - to launch agent in a host
  environment.

Grid server accepts an `--agent-factory` argument. A simple
`factory.js` might look like this:

```js
const child_process = require('child_process');

module.exports = {
  name: 'My Simple Factory',
  capacity: Infinity, // How many workers launch per agent
  timeout: 10_000, // 10 seconds timeout to create agent
  launch: ({agentId, gridURL, playwrightVersion}) => child_process.spawn(`npx`, [
    'playwright'
    'experimental-grid-agent',
    '--grid-url', gridURL,
    '--agent-id', agentId,
  ], {
    cwd: __dirname,
    shell: true,
    stdio: 'inherit',
  }),
};
```

With this `factory.js`, grid server could be launched like this:

```bash
npx playwright experimental-grid-server --factory=./factory.js
```

Once launched, it could be used with Playwright Test using env variable:

```bash
PW_GRID=http://localhost:3000 npx playwright test
```
2021-09-16 01:20:36 -07:00
Dmitry Gozman 5379b2dcba
fix(test runner): account for errors with inconsistent stack/message (#8950) 2021-09-15 21:28:36 -07:00
Dmitry Gozman 9b08871b4d
fix(test runner): print flaky tests summary in yellow, not in red (#8951) 2021-09-15 16:28:57 -07:00
Darrell Breeden d82cb9a2ff
feat: addition of tags to JSON reporter output (#8920) 2021-09-15 12:30:22 -07:00
Max Schmitt 131239569d
feat(test-runner): add --debug CLI flag (#8938) 2021-09-15 21:19:31 +02:00
Pavel Feldman 14bc663742
chrome: don't nest pw:api steps (#8932) 2021-09-15 11:34:23 -07:00
Dmitry Gozman b8a46580dd
fix(expect): toHaveText, toContainText and toHaveTitle normalize whitespace (#8929) 2021-09-14 19:24:29 -07:00
Pavel Feldman 5253a7eb54
feat(html): restore trace, video, screenshot (#8925) 2021-09-14 16:26:31 -07:00
Pavel Feldman e91243ac90
feat(html): auto-open report (#8908) 2021-09-14 13:55:31 -07:00
Joel Einbinder 351c20be48
chore(expect): remove some dependencies on jest internals (#8782) 2021-09-14 11:47:06 -04:00
Pavel Feldman 16baaa317d
chore: remove stale html experiments (#8905) 2021-09-13 20:34:46 -07:00
Pavel Feldman 1925c85dfb
feat(report): render attachment as a part of failure (#8903) 2021-09-13 18:07:40 -07:00
Pavel Feldman b76e993951
chore: remove log from htmlreport (#8898) 2021-09-13 18:07:15 -07:00
Dmitry Gozman d9d2d809a2
fix(test): make use in config accept option values only (#8828)
Also include default options in FullConfig/FullProject.
Also make examples compile and add a test.
2021-09-13 17:50:31 -07:00
Dmitry Gozman ed34a67d4a
fix(junit reporter): put stdio under testcase (#8900)
When output happened during test execution, it should be
under `<testcase><system-out>...</system-out></testcase>`.
2021-09-13 17:50:08 -07:00
Pavel Feldman bb33b8923e
feat(report): add show-report option (#8895) 2021-09-13 15:19:40 -07:00
Joel Einbinder bf35da3656
fix(test-runner): accept unix separators even on windows (#8881)
.
2021-09-13 12:09:38 -04:00
Pavel Feldman ccff6e3036
chore(html): render steps and errors (#8826) 2021-09-10 07:52:29 -07:00
Pavel Feldman 665143d629
chore(report): don't generate file per test (#8822) 2021-09-09 17:35:31 -07:00
Pavel Feldman 7bbb63d143
feat(test): start authoring raw reporter (#8790) 2021-09-09 14:17:18 -07:00
Yury Semikhatsky afe92a6fcf
fix(runner): avoid line wrapping in list reporter (#8705) 2021-09-07 17:42:17 -07:00
Daniel Dyssegaard Kallick b2c59a15dd
feat(test-runner): include test step in json report (#8476) 2021-09-07 13:35:30 -07:00
Dmitry Gozman 3739113e74
fix(test runner): allow dot-files and dot-directories with tests (#8751) 2021-09-07 10:32:47 -07:00
Max Schmitt e40b805782
feat(test-runner): support baseURL in toHaveURL (#8743) 2021-09-07 18:34:02 +02:00