Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top