Если ваша цель автоматизированного интеграционного тестирования - получить воспроизводимые тесты, я бы порекомендовал новый экземпляр webdriver для каждого выполнения теста.
Каждый тест должен проводиться отдельно, независимо от других тестов или побочных эффектов.
Лично меня больше расстраивает, чем трудно воспроизводимая ошибка, - это недетерминированный тест, которому вы не доверяете.
(Это становится еще более важным для управления самими тестовыми данными, особенно если вы посмотрите на тесты, которые могут изменять постоянное состояние приложения, например операции CRUD.)
Да, дополнительное время на выполнение теста обходится дорого, но это лучше, чем тратить время на отладку тестов.
Некоторые возможные решения, которые помогут компенсировать этот штраф, - это включить тестирование непосредственно в процесс сборки, выходя за рамки подхода непрерывной сборки к непрерывной интеграции.
Также постарайтесь ограничить объем ваших интеграционных тестов. Если у вас много тяжелых интеграционных тестов, отнимающих время выполнения, попробуйте выполнить рефакторинг. Вместо этого увеличьте охват более легкими модульными тестами вызовов базовых служб (там, где находится ваша бизнес-логика).
05.07.2011