Playwright? ??? ??? ???????? HTML ???? ??? ????? ???? ??? ? ????. ?? ???, ??? ?? ??, CI ?? ?? ?? ?????? ??? ??? ?? ???? ?? ????? ?? ???? ??? Playwright? ??? ?? ? ?? ???? ??? ????.
??? ????? ??
Playwright ???? ??? ?? ????? ??? ???? ????.
import { defineConfig } from '@playwright/test'; export default defineConfig({ metadata: 'acceptance tests', });
?? ??(Playwright v1.49)?? ??? ?? ???? ????.
JSON?? ???? ??? ???? ?? ??? ?????
??? ??? ????. ? ??? ???? ???? ?????? ???? ????. TypeScript? ???? ?? ??? ??? ?? ??? ?????.
'???' ??? '?????' ??? ??? ? ????.
??? ??? ?????? ???? ?????? ??? ?????.
?? ????? ??
Playwright? ?? ??? ??? ??? ? HTML ????? ???? ?? ??? ??????.
export type Metainfo = { 'revision.id'?: string; 'revision.author'?: string; 'revision.email'?: string; 'revision.subject'?: string; 'revision.timestamp'?: number | Date; 'revision.link'?: string; 'ci.link'?: string; 'timestamp'?: number; };
? ??? ??? ? ????. playwright.config.ts?? ??? ?????.
import { defineConfig } from '@playwright/test'; export default defineConfig({ reporter: 'html', metadata: { 'revision.id': 'adcb0c51debdbe96a6a836e2ead9d40a859f6438', 'revision.author': 'John Smith', 'revision.email': 'john.smith@gmail.com', 'revision.subject': 'Acceptance tests', 'revision.timestamp': Date.now(), 'revision.link': 'https://github.com/microsoft/playwright/pull/12734', 'ci.link': 'https://github.com/microsoft/playwright/actions/workflows/tests_primary.yml', 'timestamp': Date.now(), }, });
???? ??? ? HTML ??? ??? ? ?????? ?? ?? ?????.
????? ??? ???
????? ??? ???? ??? ?? ?? CI/CD ?????? ?? ?? ????? ????? ????. ? ????? ????? ?? ?? ??? ???? ??? ?????? ?????.
?? ???
????? ?????? Git ?? ??? ???? ?? ???? ??? ? ????. ?? ??? ?? ????? ? ???? ? ?? ???? ???????.
???? ??? ???? ??? ??
Playwright? ?? ?? ???? ?? ? ??? ??? ???? ??????. ????? ?????? ???? ??? ?? ????? ?? Playwright? ??? ???? ??? ?????.
??? ??? ???? ??? ?? ??? ?????. Playwright? ????? ??? ? ?? ??? ?? ?? "@playwright/test"? ?????.
??? gitCommitInfo ????? ????? ????.
import { defineConfig } from '@playwright/test'; import { gitCommitInfo } from 'playwright/lib/plugins'; export default defineConfig({ reporter: 'html', // @ts-expect-error '@playwright/test': { plugins: [gitCommitInfo()] }, });
gitCommitInfo ????? ??? ????
? ????? Git ?? ?? ??? ???? ??? ???? HTML ???? ????? ??? ????.
- ?? ??
- ?? ???
- ?? ?? ? ???
- ?????
?? CI/CD ???? ???? ?? ????? GITHUB_SHA ?? CI_COMMIT_SHA? ?? ?? ?? ??? ???? ??? ???? ?? ? ????.
????? ????? ???? ??? ? ???? ??? ?????? ??? ?? ???? ?????.
?? ????
Playwright? ?? ??? ????? ??? ?????.
???? ?????? webServerPlugin??? ????? ??? ? ????. ???? ??? ? ??? ? ??? ???? ??? ? ????. ??? config.webServer ??? ???? ? ????? ????? ?????. ??? ???? ???? Playwright ????? ????? ????? ????? ?????? ?????.
???? ???? ?? ??? Playwright? ??????, ?? ???? ??? ?????. ???? ????? ??? ??? ????.
?????? ?? ??? ?? ?? ??
????? ???? ?? ?????? ???? ???? ?? ??? ???? ???. gitCommitInfo ????? gitStatusFromCLI() ??? ???? ????? ??? ? ?? ??????.
import { defineConfig } from '@playwright/test'; export default defineConfig({ metadata: 'acceptance tests', });
Playwright ???? ?????? ??? ?? ??:
export type Metainfo = { 'revision.id'?: string; 'revision.author'?: string; 'revision.email'?: string; 'revision.subject'?: string; 'revision.timestamp'?: number | Date; 'revision.link'?: string; 'ci.link'?: string; 'timestamp'?: number; };
???? ??? ? ?????? ??? ??? HTML ???? ?????.
? ?? ??? ???? ?? Playwright ??? ???? ?? ????? ???? ???? ??? ? ????.
?? ??? ???
?? ?? ?? ???? ? ???? ?? ??? ????. ??? ???? ??? ? ????
???? ???? ???? ???? ?????. ? ???? ???? Playwright ??? ?????. Playwright ??? ??? ??(?: Git ??? ????)? ???? ??? ??? ?????. ?? ??? ?? ? ???? ??? ??? ????? ??? ????.
?? ????? ????? ??? ???? ???? ? ????. ?? ???? ? TEST_WORKER_INDEX ?? ??? ??? ? ????:
import { defineConfig } from '@playwright/test'; export default defineConfig({ reporter: 'html', metadata: { 'revision.id': 'adcb0c51debdbe96a6a836e2ead9d40a859f6438', 'revision.author': 'John Smith', 'revision.email': 'john.smith@gmail.com', 'revision.subject': 'Acceptance tests', 'revision.timestamp': Date.now(), 'revision.link': 'https://github.com/microsoft/playwright/pull/12734', 'ci.link': 'https://github.com/microsoft/playwright/actions/workflows/tests_primary.yml', 'timestamp': Date.now(), }, });
??? ?? ??? ??? ?? ?? ?????? ????? ?????.
??
? ????? ??? ??? Playwright HTML ???? ?????? ???? ?? ?????. ?????? ???? ?????, ??? ???? ???? ?????, ??? ???? ??? ? ????.
?? ???:
- ????? ??? ?? ?(revision.id, ci.link ?)? ?????.
- Playwright? ??? ?????? ??? ?? ????? ???? ?????? ??????.
- ?? ????? ????? ??? ???? ?? ???? ??????.
??? ?? ??? ???? Playwright ???? ? ??? ?? ????? ??? ?? ?? ??? ??????.
Playwright ???? ?????? ??? ????? ???? ???? ???? ??? ??????!
? ??? Playwright HTML ???? ????? ??: ?? ???? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

JavaScript? ??? ?? ????? ??? ?? ??? ??? ?? ?? ?? ????? ?? ???? ???? ?????. ??? ?? ???? ?? ??? ?? ??? ???? ???? ?? ?? ???? ???? ?????. ?? ??, ??? ? ?? ???? ??? (? : ??? null? ??) ?? ??? ????? ??????. ??? ??? ???? ??? ??? ????. closure?? ?? ??? ?? ??; ? ??? ??? ?? ?? ???? ?? ???? ????. V8 ??? ?? ???, ?? ??, ??/?? ???? ?? ??? ?? ??? ??? ????? ?? ??? ?? ??? ????. ?? ?? ???? ??? ??? ??? ??? ???? ????? ?? ?? ???? ?? ???????.

Node.js?? HTTP ??? ???? ? ?? ???? ??? ????. 1. ?? ????? ????? ??? ??? ? ?? ????? ?? ?? ? https.get () ??? ?? ??? ??? ? ?? ????? ?? ??? ?????. 2.axios? ??? ???? ? ?? ??????. ??? ??? ??? ??? ??? ??? ???/???, ?? JSON ??, ???? ?? ?????. ??? ?? ??? ????? ?? ????. 3. ?? ??? ??? ??? ??? ???? ???? ??? ??? ???? ?????.

JavaScript ??? ??? ?? ?? ? ?? ???? ????. ?? ???? ???, ??, ??, ?, ???? ?? ? ??? ?????. ?? ????? ?? ?? ? ? ??? ????? ?? ??? ??? ????. ??, ?? ? ??? ?? ?? ??? ??? ??? ???? ??? ??? ???? ??? ?? ??? ????. ?? ? ????? ??? ???? ? ??? ? ??? TypeofNull? ??? ?????? ??? ? ????. ? ? ?? ??? ???? ?????? ????? ???? ??? ???? ? ??? ? ? ????.

?????, JavaScript ???! ?? ? JavaScript ??? ?? ?? ?????! ?? ?? ??? ??? ??? ? ????. Deno?? Oracle? ?? ??, ??? JavaScript ?? ??? ????, Google Chrome ???? ? ??? ??? ???? ?????. ?????! Deno Oracle? "JavaScript"??? ????? Oracle? ?? ??? ??? ??????. Node.js? Deno? ??? ? Ryan Dahl? ??? ?????? ???? ????? JavaScript? ??? ???? Oracle? ????? ???? ?????.

?? JavaScript ??? ??? ??? ?????? ?? ??? ?? ?? ??? ?? ???? ????. 1. ??? ???? ???? ?? ??? ?? ? ? ???? ??? ??? ?? ? ?? ????? ?????. 2. Angular? ?????? ??? ?? ???? ? ?? ?? ??? ??? ??? ???? ?????. 3. VUE? ???? ?? ??? ???? ?? ?? ??? ?????. ?? ?? ?? ??, ? ??, ???? ???? ? SSR? ???? ??? ??? ??? ???? ? ??? ?????. ???, ??? ??? ??? ????? ????. ??? ??? ??? ??? ?? ????.

iife (?? invokedfunctionexpression)? ?? ??? ???? ?? ????? ??? ???? ?? ??? ????? ?? ??? ? ?????. ??? ?? ?? ??? ???? ? ?? ??? ??? ?? (function () {/code/}) ();. ?? ???? ??? ?????. 1. ?? ??? ??? ?? ???? ?? ??? ??? ?????. 2. ?? ??? ??? ???? ?? ?? ??? ????. 3. ?? ?? ??? ????? ?? ???? ???????? ?? ? ??. ???? ?? ???? ?? ??? ES6 ??? ??? ??? ?? ? ??? ????? ??? ? ???? ???????.

??? JavaScript?? ??? ??? ?????? ?? ???????. ?? ??, ?? ?? ? ??? ??? ?? ????? ????? ?????. 1. ?? ??? ??? ????? ???? ??. ()? ?? ??? ??? ?????. ?. ()? ?? ??? ?? ??? ??? ?? ? ? ????. 2. ?? ??? .catch ()? ???? ?? ??? ??? ?? ??? ??????, ??? ???? ???? ????? ??? ? ????. 3. Promise.all ()? ?? ????? (?? ?? ?? ? ??????? ??), Promise.Race () (? ?? ??? ?? ?) ? Promise.AllSettled () (?? ??? ???? ??)

Cacheapi? ?????? ?? ???? ??? ???? ???, ?? ??? ??? ?? ???? ? ??? ?? ? ???? ??? ??????. 1. ???? ????, ??? ??, ?? ?? ?? ???? ???? ??? ? ????. 2. ??? ?? ?? ??? ?? ? ? ????. 3. ?? ?? ?? ?? ?? ??? ??? ?? ?????. 4. ??? ???? ?? ?? ???? ?? ?? ?? ?? ?? ???? ?? ?? ??? ??? ? ????. 5. ?? ???? ??, ??? ??? ? ??? ??, ?? ??? ? ?? ???? ???? ???? ? ?? ?????. 6.?? ??? ?? ?? ?? ??, ???? ?? ? HTTP ?? ????? ?????? ???????.
