diff --git a/docs/src/release-notes-csharp.md b/docs/src/release-notes-csharp.md index 3ed66a102a33e..442ac04698290 100644 --- a/docs/src/release-notes-csharp.md +++ b/docs/src/release-notes-csharp.md @@ -4,6 +4,32 @@ title: "Release notes" toc_max_heading_level: 2 --- +## Version 1.37 + +### 📚 Debian 12 Bookworm Support + +Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit. +Let us know if you encounter any issues! + +Linux support looks like this: + +| | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | Debian 12 | +| :--- | :---: | :---: | :---: | :---: | +| Chromium | ✅ | ✅ | ✅ | ✅ | +| WebKit | ✅ | ✅ | ✅ | ✅ | +| Firefox | ✅ | ✅ | ✅ | ✅ | + +### Browser Versions + +* Chromium 116.0.5845.82 +* Mozilla Firefox 115.0 +* WebKit 17.0 + +This version was also tested against the following stable channels: + +* Google Chrome 115 +* Microsoft Edge 115 + ## Version 1.36 🏝️ Summer maintenance release. diff --git a/docs/src/release-notes-java.md b/docs/src/release-notes-java.md index 92e2bacdcb1ae..d34b3f09766a9 100644 --- a/docs/src/release-notes-java.md +++ b/docs/src/release-notes-java.md @@ -12,6 +12,48 @@ toc_max_heading_level: 2 import LiteYouTube from '@site/src/components/LiteYouTube'; +## Version 1.37 + +### New APIs + +- New methods [`method: BrowserContext.newCDPSession`] and [`method: Browser.newBrowserCDPSession`] create a [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) session for the page and browser respectively. + + ```java + CDPSession cdpSession = page.context().newCDPSession(page); + cdpSession.send("Runtime.enable"); + + JsonObject params = new JsonObject(); + params.addProperty("expression", "window.foo = 'bar'"); + cdpSession.send("Runtime.evaluate", params); + + Object foo = page.evaluate("window['foo']"); + assertEquals("bar", foo); + ``` + +### 📚 Debian 12 Bookworm Support + +Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit. +Let us know if you encounter any issues! + +Linux support looks like this: + +| | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | Debian 12 | +| :--- | :---: | :---: | :---: | :---: | +| Chromium | ✅ | ✅ | ✅ | ✅ | +| WebKit | ✅ | ✅ | ✅ | ✅ | +| Firefox | ✅ | ✅ | ✅ | ✅ | + +### Browser Versions + +* Chromium 116.0.5845.82 +* Mozilla Firefox 115.0 +* WebKit 17.0 + +This version was also tested against the following stable channels: + +* Google Chrome 115 +* Microsoft Edge 115 + ## Version 1.36 🏝️ Summer maintenance release. diff --git a/docs/src/release-notes-js.md b/docs/src/release-notes-js.md index 163de375e0879..dc9f5a6cd2a25 100644 --- a/docs/src/release-notes-js.md +++ b/docs/src/release-notes-js.md @@ -8,6 +8,11 @@ import LiteYouTube from '@site/src/components/LiteYouTube'; ## Version 1.37 + + ### New `npx playwright merge-reports` tool If you run tests on multiple shards, you can now merge all reports in a single HTML report (or any other report) @@ -42,8 +47,8 @@ Let us know if you encounter any issues! Linux support looks like this: -| | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | Debian 12 -| :--- | :---: | :---: | :---: | :---: | :---: | +| | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | Debian 12 | +| :--- | :---: | :---: | :---: | :---: | | Chromium | ✅ | ✅ | ✅ | ✅ | | WebKit | ✅ | ✅ | ✅ | ✅ | | Firefox | ✅ | ✅ | ✅ | ✅ | diff --git a/docs/src/release-notes-python.md b/docs/src/release-notes-python.md index 33be07c97bce5..a48e39b6cc164 100644 --- a/docs/src/release-notes-python.md +++ b/docs/src/release-notes-python.md @@ -4,6 +4,41 @@ title: "Release notes" toc_max_heading_level: 2 --- +## Version 1.37 + +### Highlights + +* New [--full-page-screenshot](./test-runners.md#cli-arguments) command line flag allows taking a +full page screenshot on failure. + +* It is now possible to override the context options for a single test by using the [browser_context_args](./test-runners.md#fixtures) marker. + +* `pytest-playwright` is now also getting published [on Anaconda](https://anaconda.org/Microsoft/pytest-playwright/) + +### 📚 Debian 12 Bookworm Support + +Playwright now supports Debian 12 Bookworm on both x86_64 and arm64 for Chromium, Firefox and WebKit. +Let us know if you encounter any issues! + +Linux support looks like this: + +| | Ubuntu 20.04 | Ubuntu 22.04 | Debian 11 | Debian 12 | +| :--- | :---: | :---: | :---: | :---: | +| Chromium | ✅ | ✅ | ✅ | ✅ | +| WebKit | ✅ | ✅ | ✅ | ✅ | +| Firefox | ✅ | ✅ | ✅ | ✅ | + +### Browser Versions + +* Chromium 116.0.5845.82 +* Mozilla Firefox 115.0 +* WebKit 17.0 + +This version was also tested against the following stable channels: + +* Google Chrome 115 +* Microsoft Edge 115 + ## Version 1.36 🏝️ Summer maintenance release. diff --git a/docs/src/test-sharding-js.md b/docs/src/test-sharding-js.md index fbc9ea9ab33a4..87048be8b9cd2 100644 --- a/docs/src/test-sharding-js.md +++ b/docs/src/test-sharding-js.md @@ -48,15 +48,16 @@ This will produce a standard HTML report into `playwright-report` directory. One of the easiest ways to shard Playwright tests across multiple machines is by using GitHub Actions matrix strategy. For example, you can configure a job to run your tests on four machines in parallel like this: ```yaml title=".github/workflows/playwright.yml" -name: "Playwright Tests" - +name: Playwright Tests on: push: - branches: - - main - + branches: [ main, master ] + pull_request: + branches: [ main, master ] jobs: playwright-tests: + timeout-minutes: 60 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -65,10 +66,12 @@ jobs: steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 + with: + node-version: 18 - name: Install dependencies run: npm ci - name: Install Playwright browsers - run: npx playwright install + run: npx playwright install --with-deps - name: Run Playwright tests run: npx playwright test --shard ${{ matrix.shard }} @@ -96,6 +99,8 @@ jobs: steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 + with: + node-version: 18 - name: Install dependencies run: npm ci @@ -118,6 +123,8 @@ jobs: To ensure the execution order, we make `merge-reports` job [depend](https://docs.github.com/en/actions/using-jobs/using-jobs-in-a-workflow#defining-prerequisite-jobs) on our sharded `playwright-tests` job. +image + ## Publishing report on the web In the previous example, the HTML report is uploaded to GitHub Actions Artifacts. This is easy to configure, but downloading HTML report as a zip file is not very convenient. @@ -147,6 +154,7 @@ We can utilize Azure Storage's static websites hosting capabilities to easily an run: | REPORT_DIR='run-${{ github.run_id }}-${{ github.run_attempt }}' azcopy cp --recursive "./playwright-report/*" "https://.blob.core.windows.net/\$web/$REPORT_DIR" + echo "::notice title=HTML report url::https://.z1.web.core.windows.net/$REPORT_DIR/index.html" env: AZCOPY_AUTO_LOGIN_TYPE: SPN AZCOPY_SPA_APPLICATION_ID: '${{ secrets.AZCOPY_SPA_APPLICATION_ID }}' diff --git a/package-lock.json b/package-lock.json index 20ea01d243643..064e8215f38a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "playwright-internal", - "version": "1.37.0", + "version": "1.37.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "playwright-internal", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "workspaces": [ "packages/*" @@ -6325,11 +6325,11 @@ } }, "packages/playwright": { - "version": "1.37.0", + "version": "1.37.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" }, "bin": { "playwright": "cli.js" @@ -6339,11 +6339,11 @@ } }, "packages/playwright-chromium": { - "version": "1.37.0", + "version": "1.37.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" }, "bin": { "playwright": "cli.js" @@ -6353,7 +6353,7 @@ } }, "packages/playwright-core": { - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" @@ -6364,11 +6364,11 @@ }, "packages/playwright-ct-core": { "name": "@playwright/experimental-ct-core", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/test": "1.37.0", - "playwright-core": "1.37.0", + "@playwright/test": "1.37.1", + "playwright-core": "1.37.1", "vite": "^4.3.9" }, "bin": { @@ -6380,10 +6380,10 @@ }, "packages/playwright-ct-react": { "name": "@playwright/experimental-ct-react", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-react": "^4.0.0" }, "bin": { @@ -6412,10 +6412,10 @@ }, "packages/playwright-ct-react17": { "name": "@playwright/experimental-ct-react17", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-react": "^4.0.0" }, "bin": { @@ -6444,10 +6444,10 @@ }, "packages/playwright-ct-solid": { "name": "@playwright/experimental-ct-solid", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "vite-plugin-solid": "^2.7.0" }, "bin": { @@ -6462,10 +6462,10 @@ }, "packages/playwright-ct-svelte": { "name": "@playwright/experimental-ct-svelte", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@sveltejs/vite-plugin-svelte": "^2.1.1" }, "bin": { @@ -6480,10 +6480,10 @@ }, "packages/playwright-ct-vue": { "name": "@playwright/experimental-ct-vue", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-vue": "^4.2.1" }, "bin": { @@ -6531,10 +6531,10 @@ }, "packages/playwright-ct-vue2": { "name": "@playwright/experimental-ct-vue2", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-vue2": "^2.2.0" }, "bin": { @@ -6548,11 +6548,11 @@ } }, "packages/playwright-firefox": { - "version": "1.37.0", + "version": "1.37.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" }, "bin": { "playwright": "cli.js" @@ -6604,11 +6604,11 @@ }, "packages/playwright-test": { "name": "@playwright/test", - "version": "1.37.0", + "version": "1.37.1", "license": "Apache-2.0", "dependencies": { "@types/node": "*", - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" }, "bin": { "playwright": "cli.js" @@ -6621,11 +6621,11 @@ } }, "packages/playwright-webkit": { - "version": "1.37.0", + "version": "1.37.1", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" }, "bin": { "playwright": "cli.js" @@ -7471,15 +7471,15 @@ "@playwright/experimental-ct-core": { "version": "file:packages/playwright-ct-core", "requires": { - "@playwright/test": "1.37.0", - "playwright-core": "1.37.0", + "@playwright/test": "1.37.1", + "playwright-core": "1.37.1", "vite": "^4.3.9" } }, "@playwright/experimental-ct-react": { "version": "file:packages/playwright-ct-react", "requires": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-react": "^4.0.0" }, "dependencies": { @@ -7499,7 +7499,7 @@ "@playwright/experimental-ct-react17": { "version": "file:packages/playwright-ct-react17", "requires": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-react": "^4.0.0" }, "dependencies": { @@ -7519,7 +7519,7 @@ "@playwright/experimental-ct-solid": { "version": "file:packages/playwright-ct-solid", "requires": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "solid-js": "^1.7.0", "vite-plugin-solid": "^2.7.0" } @@ -7527,7 +7527,7 @@ "@playwright/experimental-ct-svelte": { "version": "file:packages/playwright-ct-svelte", "requires": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@sveltejs/vite-plugin-svelte": "^2.1.1", "svelte": "^3.55.1" } @@ -7535,7 +7535,7 @@ "@playwright/experimental-ct-vue": { "version": "file:packages/playwright-ct-vue", "requires": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-vue": "^4.2.1" }, "dependencies": { @@ -7569,7 +7569,7 @@ "@playwright/experimental-ct-vue2": { "version": "file:packages/playwright-ct-vue2", "requires": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-vue2": "^2.2.0", "vue": "^2.7.14" } @@ -7603,7 +7603,7 @@ "requires": { "@types/node": "*", "fsevents": "2.3.2", - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } }, "@sindresorhus/is": { @@ -9942,13 +9942,13 @@ "playwright": { "version": "file:packages/playwright", "requires": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } }, "playwright-chromium": { "version": "file:packages/playwright-chromium", "requires": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } }, "playwright-core": { @@ -9957,13 +9957,13 @@ "playwright-firefox": { "version": "file:packages/playwright-firefox", "requires": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } }, "playwright-webkit": { "version": "file:packages/playwright-webkit", "requires": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } }, "postcss": { diff --git a/package.json b/package.json index a539b0af66a7d..0566befcb0537 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "playwright-internal", "private": true, - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate web browsers", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", diff --git a/packages/playwright-chromium/package.json b/packages/playwright-chromium/package.json index 837ba4804f5b4..cac70d1880ccf 100644 --- a/packages/playwright-chromium/package.json +++ b/packages/playwright-chromium/package.json @@ -1,6 +1,6 @@ { "name": "playwright-chromium", - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate Chromium", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -27,6 +27,6 @@ "install": "node install.js" }, "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } } diff --git a/packages/playwright-core/package.json b/packages/playwright-core/package.json index 01b0daeb81a20..64b894f1cad9b 100644 --- a/packages/playwright-core/package.json +++ b/packages/playwright-core/package.json @@ -1,6 +1,6 @@ { "name": "playwright-core", - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate web browsers", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", diff --git a/packages/playwright-ct-core/package.json b/packages/playwright-ct-core/package.json index cfab170e8f059..9b3ce2b8f1eef 100644 --- a/packages/playwright-ct-core/package.json +++ b/packages/playwright-ct-core/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-core", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing Helpers", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -21,9 +21,9 @@ "./lib/vitePlugin": "./lib/vitePlugin.js" }, "dependencies": { - "playwright-core": "1.37.0", + "playwright-core": "1.37.1", "vite": "^4.3.9", - "@playwright/test": "1.37.0" + "@playwright/test": "1.37.1" }, "bin": { "playwright": "./cli.js" diff --git a/packages/playwright-ct-react/package.json b/packages/playwright-ct-react/package.json index 6ccc00be95321..691b1fd22cc0e 100644 --- a/packages/playwright-ct-react/package.json +++ b/packages/playwright-ct-react/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-react", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing for React", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -26,7 +26,7 @@ } }, "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-react": "^4.0.0" }, "bin": { diff --git a/packages/playwright-ct-react17/package.json b/packages/playwright-ct-react17/package.json index 041428be0ad2c..0205c513854c4 100644 --- a/packages/playwright-ct-react17/package.json +++ b/packages/playwright-ct-react17/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-react17", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing for React", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -26,7 +26,7 @@ } }, "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-react": "^4.0.0" }, "bin": { diff --git a/packages/playwright-ct-solid/package.json b/packages/playwright-ct-solid/package.json index 68495b7cb16c6..3684d9ca2973a 100644 --- a/packages/playwright-ct-solid/package.json +++ b/packages/playwright-ct-solid/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-solid", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing for Solid", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -26,7 +26,7 @@ } }, "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "vite-plugin-solid": "^2.7.0" }, "devDependencies": { diff --git a/packages/playwright-ct-svelte/package.json b/packages/playwright-ct-svelte/package.json index 0576a381c4353..e31d174186ae6 100644 --- a/packages/playwright-ct-svelte/package.json +++ b/packages/playwright-ct-svelte/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-svelte", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing for Svelte", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -26,7 +26,7 @@ } }, "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@sveltejs/vite-plugin-svelte": "^2.1.1" }, "devDependencies": { diff --git a/packages/playwright-ct-vue/package.json b/packages/playwright-ct-vue/package.json index 7df8c62af666d..eafea9f94d9d5 100644 --- a/packages/playwright-ct-vue/package.json +++ b/packages/playwright-ct-vue/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-vue", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing for Vue", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -26,7 +26,7 @@ } }, "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-vue": "^4.2.1" }, "bin": { diff --git a/packages/playwright-ct-vue2/package.json b/packages/playwright-ct-vue2/package.json index da1694f6d39ae..d428bf01b4f26 100644 --- a/packages/playwright-ct-vue2/package.json +++ b/packages/playwright-ct-vue2/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/experimental-ct-vue2", - "version": "1.37.0", + "version": "1.37.1", "description": "Playwright Component Testing for Vue2", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -26,7 +26,7 @@ } }, "dependencies": { - "@playwright/experimental-ct-core": "1.37.0", + "@playwright/experimental-ct-core": "1.37.1", "@vitejs/plugin-vue2": "^2.2.0" }, "devDependencies": { diff --git a/packages/playwright-firefox/package.json b/packages/playwright-firefox/package.json index c676915dc9158..b7b5a6b150d49 100644 --- a/packages/playwright-firefox/package.json +++ b/packages/playwright-firefox/package.json @@ -1,6 +1,6 @@ { "name": "playwright-firefox", - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate Firefox", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -27,6 +27,6 @@ "install": "node install.js" }, "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } } diff --git a/packages/playwright-test/package.json b/packages/playwright-test/package.json index 017b70a7a4c20..63628a1fa77e3 100644 --- a/packages/playwright-test/package.json +++ b/packages/playwright-test/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/test", - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate web browsers", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -41,7 +41,7 @@ "license": "Apache-2.0", "dependencies": { "@types/node": "*", - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" }, "optionalDependencies": { "fsevents": "2.3.2" diff --git a/packages/playwright-test/src/plugins/webServerPlugin.ts b/packages/playwright-test/src/plugins/webServerPlugin.ts index cfff7ad4416dd..ea7f079e032cb 100644 --- a/packages/playwright-test/src/plugins/webServerPlugin.ts +++ b/packages/playwright-test/src/plugins/webServerPlugin.ts @@ -117,7 +117,6 @@ export class WebServerPlugin implements TestRunnerPlugin { this._reporter!.onStdErr?.(colors.dim('[WebServer] ') + line.toString()); }); launchedProcess.stdout!.on('data', line => { - process.stdout.write(line); if (debugWebServer.enabled || this._options.stdout === 'pipe') this._reporter!.onStdOut?.(colors.dim('[WebServer] ') + line.toString()); }); diff --git a/packages/playwright-test/src/runner/projectUtils.ts b/packages/playwright-test/src/runner/projectUtils.ts index b0af7ffeb4939..4469be3744285 100644 --- a/packages/playwright-test/src/runner/projectUtils.ts +++ b/packages/playwright-test/src/runner/projectUtils.ts @@ -70,8 +70,7 @@ export function buildProjectsClosure(projects: FullProjectInternal[], hasTests?: throw error; } - const projectHasTests = hasTests ? hasTests(project) : true; - if (!projectHasTests && depth === 0) + if (depth === 0 && hasTests && !hasTests(project)) return; if (result.get(project) !== 'dependency') diff --git a/packages/playwright-webkit/package.json b/packages/playwright-webkit/package.json index 928ea2f44ab96..c76caf2c26772 100644 --- a/packages/playwright-webkit/package.json +++ b/packages/playwright-webkit/package.json @@ -1,6 +1,6 @@ { "name": "playwright-webkit", - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate WebKit", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -27,6 +27,6 @@ "install": "node install.js" }, "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } } diff --git a/packages/playwright/package.json b/packages/playwright/package.json index 2ddb0ac2429e4..ebb6a32c59eda 100644 --- a/packages/playwright/package.json +++ b/packages/playwright/package.json @@ -1,6 +1,6 @@ { "name": "playwright", - "version": "1.37.0", + "version": "1.37.1", "description": "A high-level API to automate web browsers", "repository": "github:Microsoft/playwright", "homepage": "https://playwright.dev", @@ -28,6 +28,6 @@ "install": "node install.js" }, "dependencies": { - "playwright-core": "1.37.0" + "playwright-core": "1.37.1" } } diff --git a/tests/playwright-test/deps.spec.ts b/tests/playwright-test/deps.spec.ts index 4e97cb4d09920..f2a4852c7032f 100644 --- a/tests/playwright-test/deps.spec.ts +++ b/tests/playwright-test/deps.spec.ts @@ -643,3 +643,50 @@ test('should not run deps for projects filtered with grep', async ({ runInlineTe expect(result.passed).toBe(3); expect(result.outputLines).toEqual(['setupB', 'projectB', 'teardownB']); }); + +test('should allow only in dependent', async ({ runInlineTest }) => { + const result = await runInlineTest({ + 'playwright.config.ts': ` + module.exports = { + projects: [ + { name: 'setup', testMatch: '**/setup.ts' }, + { name: 'project', dependencies: ['setup'] }, + ], + };`, + 'setup.ts': ` + import { test, expect } from '@playwright/test'; + test('setup', async ({}) => {}); + `, + 'a.spec.ts': ` + import { test, expect } from '@playwright/test'; + test.only('test', async ({}) => { + }); + test('test 2', async ({}) => { expect(1).toBe(2); }); + `, + }); + expect(result.exitCode).toBe(0); + expect(result.passed).toBe(2); +}); + +test('should allow only in dependent (2)', async ({ runInlineTest }) => { + const result = await runInlineTest({ + 'playwright.config.ts': ` + module.exports = { + projects: [ + { name: 'setup', testMatch: '**/setup.ts' }, + { name: 'project', dependencies: ['setup'] }, + ], + };`, + 'setup.ts': ` + import { test, expect } from '@playwright/test'; + test.only('setup', async ({}) => {}); + `, + 'a.spec.ts': ` + import { test, expect } from '@playwright/test'; + test('test', async ({}) => { expect(1).toBe(2); }); + test('test 2', async ({}) => { expect(1).toBe(2); }); + `, + }); + expect(result.exitCode).toBe(0); + expect(result.passed).toBe(1); +});