cherry-pick(#21823): chore: remove npx playwright ui
This commit is contained in:
parent
620310ffb2
commit
b6e9f1fa53
|
|
@ -30,7 +30,6 @@ import type { FullResult } from '../reporter';
|
||||||
|
|
||||||
export function addTestCommands(program: Command) {
|
export function addTestCommands(program: Command) {
|
||||||
addTestCommand(program);
|
addTestCommand(program);
|
||||||
addUICommand(program);
|
|
||||||
addShowReportCommand(program);
|
addShowReportCommand(program);
|
||||||
addListFilesCommand(program);
|
addListFilesCommand(program);
|
||||||
}
|
}
|
||||||
|
|
@ -38,7 +37,7 @@ export function addTestCommands(program: Command) {
|
||||||
function addTestCommand(program: Command) {
|
function addTestCommand(program: Command) {
|
||||||
const command = program.command('test [test-filter...]');
|
const command = program.command('test [test-filter...]');
|
||||||
command.description('run tests with Playwright Test');
|
command.description('run tests with Playwright Test');
|
||||||
const options = [...sharedOptions, ...testOnlyOptions].sort((a, b) => a[0].replace(/-/g, '').localeCompare(b[0].replace(/-/g, '')));
|
const options = testOptions.sort((a, b) => a[0].replace(/-/g, '').localeCompare(b[0].replace(/-/g, '')));
|
||||||
options.forEach(([name, description]) => command.option(name, description));
|
options.forEach(([name, description]) => command.option(name, description));
|
||||||
command.action(async (args, opts) => {
|
command.action(async (args, opts) => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -59,30 +58,6 @@ Examples:
|
||||||
$ npx playwright test --project=webkit`);
|
$ npx playwright test --project=webkit`);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addUICommand(program: Command) {
|
|
||||||
const command = program.command('ui [test-filter...]');
|
|
||||||
command.description('open Playwright Test interactive UI');
|
|
||||||
sharedOptions.forEach(([name, description]) => command.option(name, description));
|
|
||||||
command.action(async (args, opts) => {
|
|
||||||
try {
|
|
||||||
opts.ui = true;
|
|
||||||
await runTests(args, opts);
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
command.addHelpText('afterAll', `
|
|
||||||
Arguments [test-filter...]:
|
|
||||||
Pass arguments to filter test files. Each argument is treated as a regular expression. Matching is performed against the absolute file paths.
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
$ npx playwright ui my.spec.ts
|
|
||||||
$ npx playwright ui some.spec.ts:42
|
|
||||||
$ npx playwright ui --headed
|
|
||||||
$ npx playwright ui --project=webkit`);
|
|
||||||
}
|
|
||||||
|
|
||||||
function addListFilesCommand(program: Command) {
|
function addListFilesCommand(program: Command) {
|
||||||
const command = program.command('list-files [file-filter...]', { hidden: true });
|
const command = program.command('list-files [file-filter...]', { hidden: true });
|
||||||
command.description('List files with Playwright Test tests');
|
command.description('List files with Playwright Test tests');
|
||||||
|
|
@ -259,35 +234,32 @@ function restartWithExperimentalTsEsm(configFile: string | null): boolean {
|
||||||
|
|
||||||
const kTraceModes: TraceMode[] = ['on', 'off', 'on-first-retry', 'retain-on-failure'];
|
const kTraceModes: TraceMode[] = ['on', 'off', 'on-first-retry', 'retain-on-failure'];
|
||||||
|
|
||||||
const sharedOptions: [string, string][] = [
|
const testOptions: [string, string][] = [
|
||||||
['--headed', `Run tests in headed browsers (default: headless)`],
|
|
||||||
['-c, --config <file>', `Configuration file, or a test directory with optional ${kDefaultConfigFiles.map(file => `"${file}"`).join('/')}`],
|
|
||||||
['--fully-parallel', `Run all tests in parallel (default: false)`],
|
|
||||||
['--ignore-snapshots', `Ignore screenshot and snapshot expectations`],
|
|
||||||
['-j, --workers <workers>', `Number of concurrent workers or percentage of logical CPU cores, use 1 to run in a single worker (default: 50%)`],
|
|
||||||
['--max-failures <N>', `Stop after the first N failures`],
|
|
||||||
['--no-deps', 'Do not run project dependencies'],
|
|
||||||
['--output <dir>', `Folder for output artifacts (default: "test-results")`],
|
|
||||||
['--quiet', `Suppress stdio`],
|
|
||||||
['--reporter <reporter>', `Reporter to use, comma-separated, can be ${builtInReporters.map(name => `"${name}"`).join(', ')} (default: "${baseFullConfig.reporter[0]}")`],
|
|
||||||
['--project <project-name...>', `Only run tests from the specified list of projects (default: run all projects)`],
|
|
||||||
['--timeout <timeout>', `Specify test timeout threshold in milliseconds, zero for unlimited (default: ${defaultTimeout})`],
|
|
||||||
['-x', `Stop after the first failure`],
|
|
||||||
];
|
|
||||||
|
|
||||||
const testOnlyOptions: [string, string][] = [
|
|
||||||
['--browser <browser>', `Browser to use for tests, one of "all", "chromium", "firefox" or "webkit" (default: "chromium")`],
|
['--browser <browser>', `Browser to use for tests, one of "all", "chromium", "firefox" or "webkit" (default: "chromium")`],
|
||||||
|
['-c, --config <file>', `Configuration file, or a test directory with optional ${kDefaultConfigFiles.map(file => `"${file}"`).join('/')}`],
|
||||||
['--debug', `Run tests with Playwright Inspector. Shortcut for "PWDEBUG=1" environment variable and "--timeout=0 --max-failures=1 --headed --workers=1" options`],
|
['--debug', `Run tests with Playwright Inspector. Shortcut for "PWDEBUG=1" environment variable and "--timeout=0 --max-failures=1 --headed --workers=1" options`],
|
||||||
['--forbid-only', `Fail if test.only is called (default: false)`],
|
['--forbid-only', `Fail if test.only is called (default: false)`],
|
||||||
|
['--fully-parallel', `Run all tests in parallel (default: false)`],
|
||||||
['--global-timeout <timeout>', `Maximum time this test suite can run in milliseconds (default: unlimited)`],
|
['--global-timeout <timeout>', `Maximum time this test suite can run in milliseconds (default: unlimited)`],
|
||||||
['-g, --grep <grep>', `Only run tests matching this regular expression (default: ".*")`],
|
['-g, --grep <grep>', `Only run tests matching this regular expression (default: ".*")`],
|
||||||
['-gv, --grep-invert <grep>', `Only run tests that do not match this regular expression`],
|
['-gv, --grep-invert <grep>', `Only run tests that do not match this regular expression`],
|
||||||
|
['--headed', `Run tests in headed browsers (default: headless)`],
|
||||||
|
['--ignore-snapshots', `Ignore screenshot and snapshot expectations`],
|
||||||
['--list', `Collect all the tests and report them, but do not run`],
|
['--list', `Collect all the tests and report them, but do not run`],
|
||||||
|
['--max-failures <N>', `Stop after the first N failures`],
|
||||||
|
['--no-deps', 'Do not run project dependencies'],
|
||||||
|
['--output <dir>', `Folder for output artifacts (default: "test-results")`],
|
||||||
['--pass-with-no-tests', `Makes test run succeed even if no tests were found`],
|
['--pass-with-no-tests', `Makes test run succeed even if no tests were found`],
|
||||||
|
['--project <project-name...>', `Only run tests from the specified list of projects (default: run all projects)`],
|
||||||
|
['--quiet', `Suppress stdio`],
|
||||||
['--repeat-each <N>', `Run each test N times (default: 1)`],
|
['--repeat-each <N>', `Run each test N times (default: 1)`],
|
||||||
|
['--reporter <reporter>', `Reporter to use, comma-separated, can be ${builtInReporters.map(name => `"${name}"`).join(', ')} (default: "${baseFullConfig.reporter[0]}")`],
|
||||||
['--retries <retries>', `Maximum retry count for flaky tests, zero for no retries (default: no retries)`],
|
['--retries <retries>', `Maximum retry count for flaky tests, zero for no retries (default: no retries)`],
|
||||||
['--shard <shard>', `Shard tests and execute only the selected shard, specify in the form "current/all", 1-based, for example "3/5"`],
|
['--shard <shard>', `Shard tests and execute only the selected shard, specify in the form "current/all", 1-based, for example "3/5"`],
|
||||||
|
['--timeout <timeout>', `Specify test timeout threshold in milliseconds, zero for unlimited (default: ${defaultTimeout})`],
|
||||||
['--trace <mode>', `Force tracing mode, can be ${kTraceModes.map(mode => `"${mode}"`).join(', ')}`],
|
['--trace <mode>', `Force tracing mode, can be ${kTraceModes.map(mode => `"${mode}"`).join(', ')}`],
|
||||||
['--ui', `Run tests in interactive UI mode`],
|
['--ui', `Run tests in interactive UI mode`],
|
||||||
['-u, --update-snapshots', `Update snapshots with actual results (default: only create missing snapshots)`],
|
['-u, --update-snapshots', `Update snapshots with actual results (default: only create missing snapshots)`],
|
||||||
|
['-j, --workers <workers>', `Number of concurrent workers or percentage of logical CPU cores, use 1 to run in a single worker (default: 50%)`],
|
||||||
|
['-x', `Stop after the first failure`],
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ export const test = base
|
||||||
await use(async (files: Files, env: NodeJS.ProcessEnv = {}, options: RunOptions = {}) => {
|
await use(async (files: Files, env: NodeJS.ProcessEnv = {}, options: RunOptions = {}) => {
|
||||||
const baseDir = await writeFiles(testInfo, files, true);
|
const baseDir = await writeFiles(testInfo, files, true);
|
||||||
testProcess = childProcess({
|
testProcess = childProcess({
|
||||||
command: ['node', cliEntrypoint, 'ui', '--workers=1', ...(options.additionalArgs || [])],
|
command: ['node', cliEntrypoint, 'test', '--ui', '--workers=1', ...(options.additionalArgs || [])],
|
||||||
env: {
|
env: {
|
||||||
...cleanEnv(env),
|
...cleanEnv(env),
|
||||||
PWTEST_UNDER_TEST: '1',
|
PWTEST_UNDER_TEST: '1',
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ test('should update trace live', async ({ runUITest, server }) => {
|
||||||
await expect(
|
await expect(
|
||||||
page.frameLocator('id=snapshot').locator('body'),
|
page.frameLocator('id=snapshot').locator('body'),
|
||||||
'verify snapshot'
|
'verify snapshot'
|
||||||
).toHaveText('One');
|
).toHaveText('One', { timeout: 15000 });
|
||||||
await expect(listItem).toHaveText([
|
await expect(listItem).toHaveText([
|
||||||
/browserContext.newPage[\d.]+m?s/,
|
/browserContext.newPage[\d.]+m?s/,
|
||||||
/page.gotohttp:\/\/localhost:\d+\/one.html[\d.]+m?s/,
|
/page.gotohttp:\/\/localhost:\d+\/one.html[\d.]+m?s/,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue