Лучшие практики для максимальной максимальной продолжительности выполнения модульных тестов в CI - PullRequest
1 голос
/ 18 июля 2011

Мы проводим непрерывную интеграцию в нашей компании с TeamCity, и у нас выполняются модульные тесты при каждом коммите (1 мин. Окно).

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

Тем не менее, я хотел бы знать, какова наилучшая практика для продолжительности серии юнит-тестов?

Ответы [ 4 ]

1 голос
/ 19 июля 2011

Очень просто сделать (модульные) тесты быстрее или распараллелить их ... модульные тесты должны работать ... Вы не должны ограничивать их временем выполнения ...

1 голос
/ 18 июля 2011

"Как можно короче."

Но на самом деле, это зависит именно от того, что вы спрашиваете. Стоит ли удалять тесты, чтобы сократить сборку? Возможно нет. Можете ли вы ограничить объем тестов, запускаемых для сборки на основе фиксации? Может быть и так. Стоит ли ограничивать выполнение тестов на ночной сборке? Возможно нет. То, сколько времени займет сборка, зависит от вашей команды, вашего процесса и от того, как вы интегрируете в них CI.

1 голос
/ 18 июля 2011

Вы можете встроить приоритеты в свои юнит-тесты и использовать только подмножество в качестве шлюза для проверки (Build Verification Test, или BVT ).Реже выполняйте тесты с более низким приоритетом (например, за ежедневную сборку, за прохождение теста или за выпуск продукта).Затем установите отдельные ограничения времени выполнения для каждого (или каждого набора), который удовлетворяет вашу команду разработчиков.

Я основываю приоритеты на том, насколько быстро мы прыгнем на исправление ошибки, о которой сообщалось в результате сбоя теста.P0 означает «необходимо исправить, даже если нам нужно ускорить график», P3 означает «возможно, никогда не исправить».

Одна из команд, над которыми я работал, сказала не более 2 минут на каждую функцию для BVT, ине накладывает никаких временных ограничений на тесты с более низким приоритетом.Разработчики должны были запустить около 5 тестовых наборов, и было разумно, если бы мы проверяли количество проверок на 10-минутные сборки.Но наши «модульные тесты» были огромными, интеграционными тестами, требующими особой среды, поэтому YMMV.

1 голос
/ 18 июля 2011

Юнит-тесты должны выполняться до тех пор, пока они не будут завершены; не ограничивайте набор модульных тестов в зависимости от времени выполнения. Если у вас много модульных тестов, и они требуют много времени для запуска, попробуйте найти более быстрое оборудование для запуска системы CI; покупать более дорогое оборудование гораздо дешевле, чем не проводить модульные тесты, которые выявят проблему до того, как она станет серьезной ошибкой.

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