CLI
Команда testplane
Основная команда для запуска тестов.
> testplane --help
Usage: testplane [options] [command] [paths...]
Run tests
Options:
-V, --version output the version number
-c, --config <path> path to configuration file
-b, --browser <browser> run tests only in specified browser
-s, --set <set> run tests only in the specified set
-r, --require <module> require module
--grep <grep> run only tests matching the pattern
--reporter <name> test reporters
--update-refs update screenshot references or gather them if they do not exist ("assertView" command)
--inspect [inspect] nodejs inspector on [=[host:]port]
--inspect-brk [inspect-brk] nodejs inspector with break at the start
--repl [type] run one test, call `browser.switchToRepl` in test code to open repl interface (default: false)
--repl-before-test [type] open repl interface before test run (default: false)
--repl-on-fail [type] open repl interface on test fail only (default: false)
--devtools switches the browser to the devtools mode with using CDP protocol
--local use automatically downloaded browsers and drivers, provided by Testplane
-h, --help output usage information
Например,
npx testplane --config ./config.js --reporter flat --browser firefox --grep name
Опции
Version
Вывести текущую версию testplane
.
testplane --version
Config
Использовать пользовательский файл конфигурации.
testplane --config ./local.testplane.config.ts
Browser
Запускать тесты только в указанном браузере.
testplane --browser chrome
Set
Запускать тесты только в указанном наборе.
testplane --set desktop
Require
Загрузить внешние модули, локально существующие на вашей машине, перед запуском testplane
. Это полезно для загрузчиков, таких как ECMAScript модули через esm.
testplane --require ./tsconfig-register-paths.js
Reporter
Может использоваться для установки одного из следующих репортеров:
flat
- вся информация о неудачных и повторно выполненных тестах будет сгруппирована по браузерам в конце отчета;plain
- информация о сбоях и повторениях будет размещена после каждого теста;jsonl
- отображает подробную информацию о каждом результате теста в формате jsonl.
По умолчанию используется flat
.
Информация о результатах тестов выводится в командную строку по умолчанию. Но есть возможность перенаправить вывод в файл:
testplane --reporter '{"type": "jsonl", "path": "./some-path/result.jsonl"}'
Вы также можете указать несколько репортеров:
testplane --reporter '{"type": "jsonl", "path": "./some-path/result.jsonl"}' --reporter flat
Помимо этих терминальных репортеров, вы можете использовать плагин html-reporter, чтобы генерировать HTML-отчеты.
Grep
Запускать только тесты, полное название которых совпадает с шаблоном.
Пример
Если у вас есть некоторые тесты:
describe("test", () => {
describe("with", () => {
describe("nested path", () => {
...
});
describe("other path", () => {
...
})
});
});
Вы можете запустить тесты внутри "nested path" набора, не запуская тесты внутри "other path" набора, с любым из этих вариантов:
testplane --grep "nested path"
testplane --grep "with nested path"
testplane --grep "test with nested path"
Update-refs
Запуск тестов с обновлением всех ссылок на скриншоты, созданных командой assertView.
testplane --update-refs
Рекомендуемый способ обновления скриншотов - использование плагина html-reporter.
Inspect
Запускает тесты Testplane с использованием инспектора nodejs.
testplane --inspect
В режиме отладки запускается только один рабочий и все тесты выполняются только в нём.
Используйте этот режим с опцией sessionsPerBrowser=1
, чтобы отлаживать тесты поодиночке.
Inspect break
То же, что и Инспекция, но с точкой останова в начале.
testplane --inspect-brk
REPL
Включает REPL. Также отключает ограничение времени выполнения теста. Можно использовать, указав следующие опции CLI:
--repl
- в этом режиме следует запускать только один тест в одном браузере, иначе будет выбрасываться ошибка. Интерфейс REPL не запускается автоматически, поэтому вам нужно вызвать команду switchToRepl в коде теста;--repl-before-test
- то же, что и опция--repl
, за исключением того, что интерфейс REPL открывается автоматически перед запуском теста;--repl-on-fail
- то же, что и опция--repl
, за исключением того, что интерфейс REPL открывается автоматически при сбое теста.
testplane --repl --grep 'my test name' --browser chrome
Более подробная информация о режиме REPL в Testplane доступна в документации команды switchToRepl.
Devtools
Запускает тесты Testplane с использованием протокола автоматизации devtools.
testplane --devtools
Help
Выводит информацию о параметрах и командах. Плагины Testplane могут добавлять свои собственные команды и параметры.
Например, html-reporter добавляет команду gui
.
testplane --help
Команда list-tests
Команда для получения списка тестов в одном из доступных форматов (list
или tree
).
> testplane list-tests --help
Использование: list-tests [опции] [пути...]
Выводит информацию о всех тестах в одном из доступных форматов
Опции:
-c, --config <path> путь к файлу конфигурации
-b, --browser <browser> выводит тесты только в указанном браузере
-s, --set <set> выводит тесты только в указанном наборе
-r, --require <module> подключить модуль
--grep <grep> выводит только тесты, соответствующие шаблону
--ignore <file-path> исключить пути из чтения тестов
--silent [type] флаг отключения генерации событий во время чтения тестов (по умолчанию: false)
--output-file <file-path> сохранить результаты в указанный файл
--formatter [name] вернуть тесты в указанном формате (по умолчанию: list)
-h, --help вывести информацию об использовании
Например,
npx testplane list-tests --config ./config.js --browser firefox --grep name --formatter tree
Опции
Config
Использовать пользовательский файл конфигурации.
testplane list-tests --config ./local.testplane.config.ts
Browser
Выводит тесты только в указанном браузере.
testplane list-tests --browser chrome
Set
Выводит тесты только в указанном наборе.
testplane list-tests --set desktop
Require
Загрузить внешние модули, локально существующие на вашей машине, перед выводом тестов testplane
. Это полезно для загрузчиков, таких как ECMAScript модули через esm.
testplane list-tests --require ./tsconfig-register-paths.js
Grep
Выводит только тесты, полное название которых совпадает с шаблоном.
Пример
Если у вас есть некоторые тесты:
describe("test", () => {
describe("with", () => {
describe("nested path", () => {
...
});
describe("other path", () => {
...
})
});
});
Вы можете вывести тесты внутри "nested path" набора, не включая тесты внутри "other path" набора, с любым из этих вариантов:
testplane list-tests --grep "nested path"
testplane list-tests --grep "with nested path"
testplane list-tests --grep "test with nested path"
Silent
Выводит тесты без генерации событий.
testplane list-tests --silent
Output file
Сохранить список тестов в указанный файл.
testplane list-tests --output-file "./tests.json"
Formatter
Выводит тесты в указанном формате. Доступные форматтеры: list
(по умолчанию) и tree
.
List formatter
Выводит тесты в формате list
.
testplane list-tests --formatter "list"
Для следующих тестов:
describe("suite1", () => {
it("test1", () => {});
});
it("test2", () => {});
Возвращает следующий вывод:
[
{
"id": "d2b3179",
"titlePath": [
"suite",
"test1"
],
"browserIds": [
"yandex",
"chrome"
],
"file": "tests/example.testplane.ts",
"pending": false,
"skipReason": ""
}
{
"id": "5a105e8",
"titlePath": [
"test1"
],
"browserIds": [
"yandex",
"chrome"
],
"file": "tests/example.testplane.ts",
"pending": false,
"skipReason": ""
}
]
Здесь у нас есть плоский список уникальных тестов, где:
id
(String
) - уникальный идентификатор теста;titlePath
(String[]
) - полное название теста. Каждый элемент массива - название набора или теста. Чтобы получить полное название, нужно просто соединитьtitlePath
с одним пробелом;browserIds
(String[]
) - список браузеров, в которых будет запускаться тест;file
(String
) - путь к файлу относительно рабочей директории;pending
(Boolean
) - флаг, означающий, что тест отключен или нет;skipReason
(String
) - причина, по которой тест был отключен.
Tree formatter
Выводит тесты в формате tree
.
testplane list-tests --formatter "tree"
Для следующих тестов:
describe("suite1", () => {
it("test1", () => {});
});
it("test2", () => {});
Возвращает следующий вывод:
[
{
"id": "36749990",
"title": "suite1",
"line": 1,
"column": 1,
"file": "example.testplane.ts",
"suites": [],
"tests": [
{
"id": "d2b3179",
"title": "test1",
"line": 2,
"column": 5,
"browserIds": ["yandex", "chrome"]
}
],
"pending": false,
"skipReason": ""
},
{
"id": "5a105e8",
"title": "test2",
"line": 5,
"column": 1,
"browserIds": ["yandex", "chrome"],
"file": "example.testplane.ts",
"pending": false,
"skipReason": ""
}
]
Здесь у нас есть список уникальных тестов в виде структуры дерева (с родительскими наборами), где Suite
имеет следующие опции:
id
(String
) - уникальный идентификатор набора;title
(String
) - заголовок набора;line
(Number
) - строка, в которой был вызван набор;column
(Number
) - столбец, в котором был вызван набор;file
(String
, только в верхнем наборе) - путь к файлу относительно рабочей директории;suites
(Suite[]
, существует только в наборе) - список вложенных наборов;tests
(Test[]
) - список тестов;pending
(Boolean
) - флаг, означающий, что тест отключен или нет;skipReason
(String
) - причина, по которой тест был отключен.
И Test
имеет следующие опции:
id
(String
) - уникальный идентификатор теста;title
(String
) - заголовок теста;line
(Number
) - строка, в которой был вызван тест;column
(Number
) - столбец, в котором был вызван тест;browserIds
(String[]
) - список браузеров, в которых будет запущен тест;file
(String
, только в тестах без родительских наборов) - путь к файлу относительно рабочей директории;pending
(Boolean
) - флаг, означающий, что тест отключен или нет;skipReason
(String
) - причина, по которой тест был отключен.
Help
Выводит информацию о параметрах и командах. Плагины Testplane могут добавлять свои собственные команды и параметры.
Например, html-reporter добавляет команду gui
.
testplane list-tests --help
Команда list-browsers
Команда для получения всех браузеров из конфигурации.
> npx testplane list-browsers --help
Usage: list-browsers [options]
Lists all browsers from the config
Options:
--type [type] return browsers in specified type ('tags': browserName and browserVersion, 'ids': browserId from config) (default: tags)
--format [format] return browsers in specified format ('json' / 'plain') (default: json)
-h, --help output usage information
Например,
npx testplane list-browsers --type ids --format plain
Опции
Type
Укажите тип выводимых данных: browserId из конфигурации или browserName с browserVersion.
testplane list-browsers --type tags
Format
Укажите формат выводимых данных: о бычный текст или json.
testplane list-browsers --format json
Пример
Если у вас имеется следующий раздел "browsers" в вашей конфигурации Testplane:
{
"my-chrome": { "desiredCapabilities": { "browserName": "chrome", "browserVersion": "130.0" } },
"my-safari": { "desiredCapabilities": { "browserName": "safari" } }
}
Следующие команды произведут соответствующий результат:
Команда | Результат |
---|---|
testplane list-browsers --type ids --format plain | my-chrome my-safari |
testplane list-browsers --type ids --format json | ["my-chrome","my-safari"] |
testplane list-browsers --type tags --format plain | chrome@130.0 safari |
testplane list-browsers --type tags --format json | [{"browserName":"chrome","browserVersion":"130.0"},{"browserName":"safari"}] |
Help
Выводит информацию команде и ее опциях.
testplane list-browsers --help