Hay un enfoque alternativo que debe discutir: BDD
Tenga en cuenta el desarrollo impulsado por el comportamiento con especificaciones ejecutables. Sus especificaciones se simplifican en una serie de conjuntos de instrucciones Given - When - Then que se almacenan en archivos de texto. Una herramienta BDD como Cucumber o SpecFlow convierte esos archivos de texto en pruebas ejecutables, que su herramienta de compilación puede ejecutar.
Pepino: http://cukes.info/ - BDD para Ruby
SpecFlow: http://www.specflow.org/ - BDD para .Net
Para obtener una demostración rápida del flujo de trabajo con una herramienta como SpecFlow, consulte el tutorial de Rob Conery SpecFlow: http://tekpub.com/view/concepts/5
Ahora, no solo está versionando su código, sino también sus especificaciones y su herramienta de Integración Continua (piense en TeamCity, CruiseControl, Hudson, etc.) está haciendo cumplir que todas las especificaciones sigan siendo válidas en CADA compilación ... ¿Es valioso para usted?