Организация набора тестов
По мере роста п роектов неизбежно добавляется всё больше и больше интеграционных тестов. Это увеличивает время сборки и замедляет продуктивность.
Чтобы предотвратить это, следует запускать тесты параллельно. WebdriverIO уже тестирует каждую спецификацию (или feature file в Cucumber) параллельно в рамках одной сессии. В общем, старайтесь тестировать только одну функцию на файл спецификации. Постарайтесь не иметь слишком много или слишком мало тестов в одном файле. (Однако, здесь нет золотого правила.)
После того, как у вас появится несколько файлов спецификаций, вы должны начать запускать тесты параллельно. Для этого настройте свойство maxInstances в конфигурационном файле. WebdriverIO позволяет запускать тесты с максимальной параллельностью — это означает, что независимо от того, сколько у вас файлов и тестов, они все могут выполняться параллельно. (Это по-прежнему подчиняется определенным ограничениям, таким как CPU вашего компьютера, ограничения параллельности и т.д.)
Допустим, у вас есть 3 разных возможности (Chrome, Firefox и Safari), и вы установили
maxInstancesв1. Тест-раннер WDIO создаст 3 процесса. Следовательн о, если у вас 10 файлов спецификаций и вы установитеmaxInstancesв10, все файлы спецификаций будут тестироваться одновременно, и будет создано 30 процессов.
Вы можете определить свойство maxInstances глобально, чтобы установить атрибут для всех браузеров.
Если вы запускаете собственную сетку WebDriver, у вас может быть (например) больше мощности для одного браузера, чем для другого. В этом случае вы можете ограничить maxInstances в объекте capability:
// wdio.conf.js
export const config = {
// ...
// set maxInstance for all browser
maxInstances: 10,
// ...
capabilities: [{
browserName: 'firefox'
}, {
// maxInstances can get overwritten per capability. So if you have an in-house WebDriver
// grid with only 5 firefox instance available you can make sure that not more than
// 5 instance gets started at a time.
browserName: 'chrome'
}],
// ...
}