Распределение тестов - PullRequest
       17

Распределение тестов

8 голосов
/ 12 августа 2008

На моей работе мы выполняем группу тестов, которая состоит из около 3000 отдельных тестовых случаев. Ранее мы выполняли весь этот набор тестов на одной машине, на выполнение которого потребовалось около 24-72 часов. Теперь мы создали нашу собственную систему для группировки и распределения тестов между примерно тремя отдельными машинами, и тесты имеют приоритет, так что основные тесты запускаются первыми для получения более быстрых результатов, а дополнительные тесты запускаются при наличии доступной машины.

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

Мы не планируем переписывать какие-либо наши тесты, но, поскольку мы добавляем новые тесты и тестируем новые продукты или дополнения, я бы хотел иметь дело с тем фактом, что мы работаем с очень большим количеством тесты. С другой стороны, если мы сможем найти инструмент, который помог бы распространять наши тесты Junit 3.x даже самым простым способом, то был бы полезным, так как нам не пришлось бы поддерживать наши собственные инструменты для сделай это.

Ответы [ 3 ]

2 голосов
/ 12 августа 2008

Я видел некоторых людей, играющих с распределенным JUnit . Я не могу особо утверждать, насколько это эффективно, но другие команды, которые я видел, казалось, думали, что это достаточно просто. Надеюсь, это поможет.

1 голос
/ 13 августа 2008

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

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

1 голос
/ 12 августа 2008

Наши специалисты по сборке используют Mozilla Tinderbox. Похоже, есть несколько хуков для распределенного тестирования. Извините, что не знаю деталей, но я подумал, что по крайней мере передам вам указатель.

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

http://www.mozilla.org/tinderbox.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...