Почему первый тестовый запуск с Robolectric занимает так много времени?
Я тестирую свое Android-приложение с Robolectric, но столкнулся со странной ситуацией. Что происходит, когда я запускаю какой-то набор тестов, первый тест, запущенный с Robolectric, занимает намного больше времени, чем любой другой тест. Это не является специфическим для самого теста, поскольку я пробовал разные конфигурации в порядке тестов, и в результате первый тест всегда самый медленный.
Это время установки Robolectric или что-то в этом роде? Любая предоставленная информация полезна.
1 ответ
Да, это время установки. К сожалению, нет центрального места, где вы можете собрать всю информацию о Robolectric
,
Посмотрите эту презентацию, и вы найдете больше объяснений на страницах 28, 29, 30, 35.
Если вы заинтересованы Robolectric
изменились некоторые подходы в версии 2.0. Существенные изменения:
Javaassist
использование заменено наASM
использование - для ускоренного запуска- Они пытаются уменьшить количество теневых классов и вместо этого используют Android-код ASOP - для повышения надежности тестирования
Если вы используете gradle
затем взгляните также на плагин robolectric gradle. Добавлены запущенные тесты параллельно и другие параметры настройки. Запуск параллельных тестов, по-видимому, полезен только при большом количестве тестов (более сотни)