Является ли параллельное тестирование на java более эффективным?

#java #multithreading #junit #parallel-processing

Вопрос:

Я изучал параллельное выполнение тестов Junit и понял, что, когда я запускаю свой тест, делая их параллельными, время их выполнения увеличивается. Синхронный запуск тестов занимает примерно 3 секунды:

введите описание изображения здесь

После того, как я инициализировал junit.jupiter.execution.parallel.enabled = true свой junit-platform.properties файл, это заняло почти 6 секунд:

введите описание изображения здесь

Может кто-нибудь объяснить мне, в чем тут дело?

Комментарии:

1. Есть ли у ваших тестов общие ресурсы?

2. Да, некоторые из них

3. Обычно при любом параллелизме возникают накладные расходы. То же самое с параллельными потоками. Параллелизм-это не серебряная пуля для ускорения работы. Выгода должна превышать затраты. Если ваши тесты занимают 3 секунды, я не вижу смысла пытаться сделать их быстрее.

4. Я просто пытаюсь понять различия. В каких ситуациях я должен использовать параллельное тестирование.

5. Это может быть полезно, например, для небольших тестов на основе алгоритмов с большим количеством входных вариаций. Если ваши тестовые наборы тяжелы (больше похожи на интеграцию), например, запуск приложения с полной загрузкой spring, я не думаю, что тесты parellel принесут вам пользу. Нет четкого разделения, которое можно было бы описать. Это должно решаться в каждом конкретном случае. Тем не менее, я сам никогда даже не пытался использовать параллельные тесты.