system
Обзор
Раздел system
в настройках Testplane не является обязательным.
Используйте его, чтобы:
- включить режим дебага для WebDriver'а;
- изменить mocha-таймауты для тестов;
- занести какие-либо данные в глобальный контекст, который будут видеть все тесты;
- задать типы ошибок, при которых нужно закрывать текущую сессию браузера навсегда, а не пытаться её переиспользовать;
- задать число подпроцессов, в которых будут запускаться тесты, чтобы ускорить их выполнение;
- определить максимально доступное количество браузеров в один момент времени (может быть актуально, если вы получаете браузеры из облачного сервиса, где есть такие ограничения);
- задать расширения файлов, среди которых Testplane будет искать тесты;
- и т. д.
Пример конфигурации секции system
:
import type { ConfigInput } from "testplane";
export default {
// ...
system: {
debug: false,
mochaOpts: {
timeout: 60000,
},
expectOpts: {
wait: 3000,
interval: 100,
},
ctx: {
/* ... */
},
patternsOnReject: [/timeout/i, /timedout/i, /timed out/i],
workers: 1,
testsPerWorker: Infinity,
parallelLimit: 15,
fileExtensions: [".js", ".ts"],
},
} satisfies ConfigInput;
Справка по секции system
Параметр | Тип | По умолчанию | Описание |
debug | boolean | false | Включить / отключить режим отладки для WebDriver. |
expectOpts | ExpectOpts | см. ниже | Опции expect-webdriverio. |
mochaOpts | MochaOpts | см. ниже | Дополнительные опции для mocha. |
ctx | Record<string, any> | { } | Контекст, который будет доступен во всех тестах через метод testplane.ctx. |
patternsOnReject | RegExp[] | [ ] | Список шаблонов ошибок. Сессия будет закрыта, если тест упадет с ошибкой, соответствующей одному из указанных шаблонов. После чего будет создана новая сессия, чтобы исключить инфраструктурные проблемы. |
workers | number | 1 | Число подпроцессов, которые будут запущены для выполнения тестов. |
testsPerWorker | number | Infinity | Максимальное количество тестов, которые будут запущены в одном подпроцессе, прежде чем подпроцесс будет перезапущен. |
diffColor | string | "#ff00ff" | Цвет, которым нужно отображать дифф на скриншотах. |
parallelLimit | number | Infinity | Максимальное количество браузеров, которые могут быть запущены одновременно. |
fileExtensions | string[] | [".js", ".mjs", ".ts", ".mts", ".jsx", ".tsx"] | Расширения файлов, в которых Testplane будет искать тесты для запуска. |
testRunEnv | nodejs или browser или Array | nodejs | Возможно указать в каком окружении должны выполняться тесты. |
debug
Включает режим отладки для WebDriver, если установить значение в true
. В этом режиме в консоль будет выводиться подробная информация о каждой команде, отправленной браузеру.
По умолчанию: false
.
expectOpts
Опции для expect-webdriverio. Позволяют менять тайм-аут и интервал между попытками найти элемент.
По умолчанию:
const defaultExpectOpts = {
wait: 3000,
interval: 100,
};
mochaOpts
Дополнительные опции для mocha
, которые передаются в mocha.setup
. См. список доступных опций в документации для Mocha. По умолчанию: { timeout: 60000 }
.
import type { ConfigInput } from "testplane";
export default {
// ...
system: {
mochaOpts: {
timeout: 60000,
},
},
} satisfies ConfigInput;
ctx
Контекст, который будет доступен во всех тестах через метод testplane.ctx
. Предназначен для совместного использования каких-либо данных между всеми тестами, без необходимости прибегать к использованию глобальных переменных.
Пример использования:
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
. После чего будет создана новая сессия, чтобы исключить инфраструктурные проблемы.
Пример:
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
.