Using a worker fixture forces a new worker. This might be unexpected
when part of the test file runs in one worker, and another runs
in another worker. Top-level use of worker fixtures is still fine.
- Uses some auto fixtures to set default options and instrumentation on BrowserType.
- Moves screenshot, trace and video to worker-scoped fixtures.
- Throws in page/context when used from beforeAll/afterAll.
- Plumbs around BrowserType to be accessible from Browser and BrowserContext.
Each hook gets its own test scope. This is not too useful for
object fixtures like `page` (although one can use a page in
`beforeAll` to save storage state), but much more useful for option
fixtures like `viewport`.
This patch adds support for the `vue` selector engine that allows
selecting DOM elements based on the component name.
> **NOTE**: `vue` engine supports Vue2 and Vue2.
References #7189
This patch adds support for the `react` selector engine that allows
selecting DOM elements based on the component name.
> **NOTE**: in case of multi-root components (React.Fragment), `react`
engine will select all root DOM elements.
> **NOTE**: `react` engine supports react v15+.
References #7189
Subsequent invocations reset the trace. This removes the `tracing._reset` method.
Also fixed a bug where BASE element was not reset properly.
Also fixed a bug where tracing would affect the result of protocol call
by setting `callMetadata.error` property.
`tracing._export({ path })` exports current tracing state into a file
and does not require tracing to be stopped.
`tracing._reset()` resets current tracing state, but keeps resources
around so they can be referenced in the future snapshots. Does not stop.
The usage pattern is:
```js
await tracing.start({ screenshots: true, snapshots: true });
// ...
await tracing._reset();
// Do stuff, it will all be in the export below.
await tracing._export({ path });
// ...
await tracing.stop();
```
We used to sort based on workerHash, and that changes depending on
the exact worker fixtures list. Now we replace workerHash with
an ordinal when constructing the TestGroup list to preserve the
natural order.