2009-02-10 2 views
3

Мой текущий проект имеет 5 отдельных автоматизированных сборок, стартует после каждого заезда:
модульных тестов (DB звонки издевались вне): ~ 6 минут
Интеграционные тесты (только к БД): ~ 40 минут
Сайт 1 пользовательский интерфейс (Селен, из пользовательского интерфейса к БД): ~ 80 минут
Сайт 2 UI1 (Селен, из пользовательского интерфейса к БД): ~ 90 минут
Сайт 2 UI2 (Селен, из пользовательского интерфейса к БД): ~ 100 минутКакие автоматизированные системы сборки вы используете? Как долго ваши сборки?

Мы используем Maven2, JUnit и Selenium.

Одна из стратегий, которая, как я думаю, приведет к значительному сокращению времени тестирования интеграции, позволяет как можно больше интегрировать тесты в модульные тесты и просто использовать проект интеграции для проверки устойчивости к БД.

Мне интересно, какие стратегии вы нашли, которые помогли сократить время сборки больших проектов.

ответ

2

У нас примерно столько же времени выполнения сборки, может быть, немного меньше на селене (я бы сказал, около 3х50 минут времени выполнения, те же тесты сайта на firefox, т. Е. И на оперу). Наше решение заключалось в том, чтобы выпустить на него больше CPU, и у нас есть кластерная среда bamboo, состоящая из всего 7 двухъядерных узлов.

Мы обнаружили, что работающий селен-rc и браузер в отдельном ящике из теста web-container/selenium значительно улучшают время работы селена.

0

Team System: до 1 часа для всего

0

Я предполагаю, что ваш проект состоит из нескольких подпроектов. Если это не так, вы можете захотеть реорганизовать базу кода так, чтобы она выполнялась. Таким образом, вы можете выбрать только отдельные части общего приложения, затем протестировать отдельную часть, а затем запустить свои интеграционные тесты, когда вы разработали ошибки в подпроекте, над которым вы работаете.

1

Я использую GNU make для автоматизации всего. В зависимости от этого требуется от 2 минут до 30 минут в зависимости от проекта.

0

Мы используем Hudson для создания большого решения C#, содержащего несколько служб Windows, веб-сервисов и исполняемых файлов. Около 800 или около того тестов через MSTest.exe и занимает около 12-15 минут на сборку. Тесты занимают значительную часть, так как MSTest - это плащ.

Чтобы сократить время, мы попытались ограничить количество сборок, произведенных для запуска через MSTest, поскольку установка и срыв, похоже, занимают некоторое время.

Редактировать: наша сборка также распространяется на наш сертификат env, который включает в себя веб-службы, службы Windows, исполняемые файлы и развертывание базы данных. Просто, чтобы дать вам представление о масштабе

0

Erlang Common Test - в основном фокусируется на системных тестах, а не на тестах модулей.

0

Все наши автоматические сборки выполняются с помощью Team City.

Самый автоматический проект, с которым мы работаем, - это, по сути, компилятор. Наш тестовый набор состоит из около 20000 тестовых запросов, которые скомпилированы и запущены, которые запускаются на каждой проверке. Это занимает большую часть часа, но хранение полного набора тестов в RAM-диске на машине сборки (а не проверка его каждый раз) уменьшает это до нескольких минут.

Каждую ночь запускается вторая сборка, которая запускает те же самые тесты, но под 4 различными профилями, в то время как работает под управлением NCover, которая создает отчет о покрытии кода. Этот сценарий занимает несколько часов, поэтому он сделан как ночная сборка. Одновременно создаются другие внутренние отчеты, чтобы гарантировать, что все работает должным образом.

Обновления самого набора тестов запускаются отдельно и проверяется на готовую RAM-RAM для следующего запуска. Проверка тестов в противном случае занимала большую часть времени сборки. Часть тестового набора поступает из удаленного репозитория CVS из нашего контроля и даже запрашивает это для обновлений, добавленных за несколько минут до времени сборки, так что это также делается в сборке «Тесты обновлений». Эта свободная связь означала, что нам пришлось ограничивать сборку этого проекта на одну машину, но поскольку обратная связь настолько быстрая, это не большая проблема.

Было очень полезно поддерживать «регулярную» сборку тестов как можно быстрее, сохраняя при этом высокое покрытие кодовой базы. Любые медленные тесты (более секунды или около того) были перенесены на ночную сборку. В нашем случае поддержание тестов в ОЗУ действительно помогло, хотя наш сценарий - скорее специалист. Я предполагаю, что издевательство над вашей базой данных является ближайшим эквивалентом. Мой совет состоит в том, чтобы сохранить единую «скудную и среднюю», удалив любые «короткие» или медленные тесты, позволяя мгновенному ответу узнать, что вы, вероятно, ничего не сломали. Другие сборки могут запускаться на отдельных машинах или ночью, чтобы быстро реагировать на быстрый сбор.

Для перспективы самая длинная автоматическая сборка, которую мы имеем (для другого проекта), иногда занимает больше дня, хотя, к счастью, это не тот, который нужно регулярно запускать.

0

У моего нынешнего клиента, к сожалению, BuildForge (от ClearCase SCC): от одного до трех дней. Seriosuly. Я действительно не знаю, что они делают в сборке или почему это так долго.

Смежные вопросы