Test Driven Development implica escribir la prueba antes del código y seguir un ciclo determinado :
- Prueba de escritura
- Comprobar prueba (ejecutar)
- Escribir código de producción
- Comprobar prueba (ejecutar)
- Limpiar código de producción
- Comprobar prueba (ejecutar)
En lo que a mí respecta, esto solo es posible si su solución de desarrollo le permite cambiar muy rápidamente entre la producción y el código de prueba, y ejecutar la prueba para una determinada parte del código de producción extremadamente rápido.
Ahora, si bien existen una gran cantidad de infraestructuras de prueba Unidad para C ++ (estoy usando Bost.Test atm.) Sí parece que hay no significa realmente existe alguna decente (para C ++ nativo solución) Visual Studio (Plugin) que hace que el TDD ciclo soportable independientemente del marco utilizado.
"Bearable" significa que es una acción de un clic para ejecutar una prueba para un determinado archivo cpp sin tener que configurar manualmente un proyecto de prueba por separado, etc. "Bearable" también significa que se inicia una prueba simple (vinculación) y se ejecuta muy rápidamente .
Entonces, ¿qué herramientas (complementos) y técnicas existen que hacen posible el ciclo TDD para el desarrollo nativo de C ++ con Visual Studio?
Nota: estoy bien con herramientas gratuitas o "comerciales".
Por favor : No hay recomendaciones marco. (A menos que el marco tenga un complemento de Visual Studio dedicado y desee recomendar el complemento).
Nota de edición : Las respuestas hasta ahora han proporcionado enlaces sobre cómo integrar un marco de Prueba de unidad en Visual Studio. Los recursos más o menos describen cómo hacer que el marco UT compile y ejecute sus primeras pruebas. De esto no se trata esta pregunta. Soy de la opinión de que para trabajar realmente de manera productiva, teniendo las Pruebas de Unidad en un vcproj mantenido manualmente (!), Vcproj separado de sus clases de producción agregará tanta sobrecarga que TDD "no es posible". Hasta donde yo sé, no agrega "proyectos" adicionales a una cosa Java o C # para habilitar las pruebas unitarias y TDD, y por una buena razón. Esto debería es posible con C ++ con las herramientas adecuadas, pero parece (esta pregunta es) que hay muy pocas herramientas para TDD / C ++ / VS.
Buscando en Google, he encontrado una herramienta, VisualAssert , que parece apuntar en la dirección correcta. Sin embargo, afaiks, no parece tener un uso generalizado (en comparación con CppUnit, Boost.Test, etc.).
Editar: me gustaría agregar un comentario al contexto de esta pregunta. Creo que hace un buen resumen de delinear (parte del problema): (comentario de Billy ONeal )
Visual Studio no utiliza "scripts de compilación" que el usuario pueda editar razonablemente. Un proyecto produce un binario. Además, Java tiene la propiedad de que Java nunca construye un binario completo: el binario que construye es solo un ZIP de los archivos de clase. Por lo tanto, es posible compilar por separado y luego JAR juntos manualmente (por ejemplo, usando 7z). C ++ y C # ambos vinculan sus binarios, por lo que, en general, no se puede escribir un script como ese. Lo más cercano que puede obtener es compilar todo por separado y luego hacer dos enlaces (uno para producción y otro para prueba).
7z
) C ++ y C # ambos vinculan sus binarios, por lo que, en general, no se puede escribir un script como ese. Lo más cercano que puede obtener es compilar todo por separado y luego hacer dos enlaces (uno para producción y otro para prueba).
As far as I am aware, you do not add extra "projects" to a Java or C# thing to enable Unit Tests and TDD,
<- No creo que esto sea correcto. Por lo general, también tiene varios proyectos en C #; no desea enviar su código de prueba en su binario de producción.