Конечно, это зависит от настроенного тестового прогона.Скажем, для Jasmine2 кажется невозможным одновременное выполнение тестов:
Из-за однопоточности javascript на самом деле невозможно параллельно запускать ваши тесты в одномокно браузера
Но просматривая раздел конфигурации docs :
- maxConcurrency = Запрещает Jest выполнять больше указанного количества тестов вв то же время.Влияет только на тесты, использующие test.concurrent.
- maxWorkers = |Псевдоним: -w.Задает максимальное количество рабочих, которые рабочий пул будет порождать для выполнения тестов.По умолчанию это число ядер, доступных на вашем компьютере.Это может быть полезно для настройки в средах с ограниченными ресурсами, таких как CI, но значение по умолчанию должно быть адекватным для большинства случаев использования.
Для сред с переменными ЦП, вы можете использовать процентную конфигурацию: --maxWorkers = 50%
Также смотрите описание для jest-runner-concurrent :
По умолчанию бегун Jest использует новый child_process (также известный как рабочий)для каждого тестового файла.Хотя максимальное количество рабочих можно настраивать, многие из них работают медленно и потребляют тонны памяти и ЦП.
Похоже, что вы можете настроить количество тестовых файлов, работающих параллельно (maxWorkers
), а также одновременных тестовых случаев в рамках одного работника (maxConcurrency
).Если вы используете jest
в качестве тестового бегуна.И это касается только test.concurrent()
тестов.
По какой-то причине я не смог найти ничего на test.concurrent()
на их главном сайте документации.
В любом случае вы можете сами проверить свою среду:
describe('checking concurrent execution', () => {
let a = 5;
it('deferred change', (done) => {
setTimeout(() => {
a = 11;
expect(a).toEqual(11);
done();
}, 1000);
});
it('fails if running in concurrency', () => {
expect(a).toEqual(11);
});
})
Конечно, выше я использовал синтаксис Жасмин (describe
, it
), поэтому вам, возможно, придется заменить его на другойвызовы.