Перейти к основному содержимому

system

Обзор

Раздел system в настройках Testplane не является обязательным.

Используйте его, чтобы:

  • включить режим дебага для WebDriver'а;
  • изменить mocha-таймауты для тестов;
  • занести какие-либо данные в глобальный контекст, который будут видеть все тесты;
  • задать типы ошибок, при которых нужно закрывать текущую сессию браузера навсегда, а не пытаться её переиспользовать;
  • задать число подпроцессов, в которых будут запускаться тесты, чтобы ускорить их выполнение;
  • определить максимально доступное количество браузеров в один момент времени (может быть актуально, если вы получаете браузеры из облачного сервиса, где есть такие ограничения);
  • задать расширения файлов, среди которых Testplane будет искать тесты;
  • и т. д.

Пример конфигурации секции system:

testplane.config.ts
import type { ConfigInput } from "testplane";

export default {
// ...
system: {
debug: false,
mochaOpts: {
timeout: 60000,
},
ctx: {
/* ... */
},
patternsOnReject: [/timeout/i, /timedout/i, /timed out/i],
workers: 1,
testsPerWorker: Infinity,
parallelLimit: 15,
fileExtensions: [".js", ".ts"],
},
} satisfies ConfigInput;

Справка по секции system

ПараметрТипПо умолчаниюОписание
debugbooleanfalseВключить / отключить режим отладки для WebDriver.
expectOptsExpectOptsсм. нижеОпции expect-webdriverio.
mochaOptsMochaOptsсм. нижеДополнительные опции для mocha.
ctxRecord<string, any>{ }Контекст, который будет доступен во всех тестах через метод testplane.ctx.
patternsOnRejectRegExp[][ ]Список шаблонов ошибок. Сессия будет закрыта, если тест упадет с ошибкой, соответствующей одному из указанных шаблонов. После чего будет создана новая сессия, чтобы исключить инфраструктурные проблемы.
workersnumber1Число подпроцессов, которые будут запущены для выполнения тестов.
testsPerWorkernumberInfinityМаксимальное количество тестов, которые будут запущены в одном подпроцессе, прежде чем подпроцесс будет перезапущен.
diffColorstring"#ff00ff"Цвет, которым нужно отображать дифф на скриншотах.
parallelLimitnumberInfinityМаксимальное количество браузеров, которые могут быть запущены одновременно.
fileExtensionsstring[][".js", ".mjs", ".ts", ".mts", ".jsx", ".tsx"]Расширения файлов, в которых Testplane будет искать тесты для запуска.
testRunEnvnodejs или browser или ArraynodejsВозможно указать в каком окружении должны выполняться тесты.

debug

Включает режим отладки для WebDriver, если установить значение в true. В этом режиме в консоль будет выводиться подробная информация о каждой команде, отправленной браузеру.

По умолчанию: false.

expectOpts

Опции для expect-webdriverio. Позволяют менять тайм-аут и интервал между попытками найти элемент.

По умолчанию:

const defaultExpectOpts = {
wait: 3000,
interval: 100,
};

mochaOpts

Дополнительные опции для mocha, которые передаются в mocha.setup. См. список доступных опций в документации для Mocha. По умолчанию: { timeout: 60000 }.

testplane.config.ts
import type { ConfigInput } from "testplane";

export default {
// ...
system: {
mochaOpts: {
timeout: 60000,
},
},
} satisfies ConfigInput;

ctx

Контекст, который будет доступен во всех тестах через метод testplane.ctx. Предназначен для совместного использования каких-либо данных между всеми тестами, без необходимости прибегать к использованию глобальных переменных.

Пример использования:

testplane.config.ts
import type { ConfigInput } from "testplane";

export default {
// ...
system: {
ctx: {
services: ["video", "images"],
},
},
} satisfies ConfigInput;
it("awesome test", function () {
console.log(testplane.ctx); // { services: ['video', 'images'] }
});
подсказка

Используйте в тестах testplane.ctx вместо глобальных переменных.

patternsOnReject

Сессия будет закрыта, если тест упадет с ошибкой, соответствующей одному из указанных шаблонов в patternsOnReject. После чего будет создана новая сессия, чтобы исключить инфраструктурные проблемы.

Пример:

testplane.config.ts
import type { ConfigInput } from "testplane";

export default {
// ...
system: {
patternsOnReject: [/timeout/i, /timedout/i, /timed out/i],
},
} satisfies ConfigInput;

workers

Testplane запускает все тесты в подпроцессах, чтобы уменьшить использование CPU для главного процесса и не упираться в ограничение по памяти для Node.js. Данная опция задает число подпроцессов, которые будут запущены для выполнения тестов. По умолчанию: 1.

testsPerWorker

Максимальное количество тестов, которые будут запущены в одном подпроцессе, прежде чем подпроцесс будет перезапущен. По умолчанию: Infinity.

diffColor

Цвет для отображения диффа при визуальных проверках с помощью команды browser.assertView.

По умолчанию: "#ff00ff".

parallelLimit

По умолчанию Testplane запускает все браузеры одновременно. Иногда (например, при использовании облачных сервисов, таких как SauceLabs) вам может понадобиться ограничить количество браузеров, которые могут быть запущены одновременно. Данная опция задает это ограничение. По умолчанию: Infinity.

fileExtensions

Расширения файлов, в которых Testplane будет искать на файловой системе тесты для запуска. По умолчанию: [".js", ".mjs", ".ts", ".mts", ".jsx", ".tsx"].

testRunEnv

Позволяют указать, в каком окружении необходимо запускать тесты. Доступны следующие окружения:

  • nodejs — Testplane будет запускать тесты в Node.
  • browser — Testplane будет запускать тесты в браузере.

При использовании значения browser можно указать дополнительные опции:

  • viteConfig — кастомный конфиг Vite. Можно указать строку — путь к файлу конфигурации, объект — UserConfig или функцию — с типом (env: ConfigEnv) => UserConfig | Promise<UserConfig>.

Примеры использования:

testplane.config.ts
import type { ConfigInput } from "testplane";

export default {
// ...
system: {
testRunEnv: ['browser', { viteConfig: './vite.config.ts' }]
},
}