В моей работе в настоящее время мы используем Aegis контроль версий / SCM. То, как мы его настроили, у нас есть куча тестов, и это заставляет следовать следующим вещам, прежде чем изменение может быть интегрировано:
- Должен быть выполнен полный набор тестов.
- Все тесты должны быть пройдены.
При разработке через тестирование (TDD) эти требования кажутся разумными. Но я не слышал о том, как вы можете сделать это с любыми другими системами контроля версий. (В настоящее время мы не планируем переключаться, но я хотел бы знать, как это сделать в будущем без использования Aegis.)
Я был бы заинтересован в любой VCS (распределенной или нет), которая может сделать это, меня также интересуют любые плагины / расширения для существующих VCS, которые позволяют это. Предпочтительно программное обеспечение с открытым исходным кодом.
ETA: ОК, кажется, что обычно нужно иметь программное обеспечение для непрерывной интеграции VCS +, и выполнение тестов автоматизируется как часть сборки, а не как отдельный шаг. Если я правильно понимаю, что позволяет фиксировать код, который не проходит тесты, просто вы получаете уведомление об этом - это правильно? Есть ли что-нибудь, что могло бы помешать вам вообще интегрировать / зафиксировать это?