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
.
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>
.
Примеры использования:
- String
- Object
- Function
import type { ConfigInput } from "testplane";
export default {
// ...
system: {
testRunEnv: ['browser', { viteConfig: './vite.config.ts' }]
},
}
import type { ConfigInput } from "testplane";
import viteConfig from './vite.config.ts';
export default {
// ...
system: {
testRunEnv: ['browser', { viteConfig }]
},
}
import type { ConfigInput } from "testplane";
export default {
// ...
system: {
testRunEnv: ['browser', {
viteConfig: (configEnv) => ({
// ...
}),
}],
},
}