2011-09-18 13 views
8

Estoy a punto de comenzar un proyecto de C++, pero estoy atascado en lo básico.Código de inicio :: blocks y UnitTest ++

Quiero usar el (código) de Linux :: Blocks IDE, y es fácil crear un proyecto normal. Sin embargo, quiero hacer TDD usando el framework UnitTest ++, y no sé cómo configurar todo limpiamente.

Ya he preguntado question acerca de dónde poner el comando UnitTest::RunAllTests(), y me dijeron que el mejor lugar es el main() de un programa separado.

¿Cómo puedo hacer esto en Code :: Blocks? Creo que necesito para crear 2 proyectos:

  • El proyecto "real" con su propio main();
  • El proyecto de prueba unitaria que contiene las pruebas y main() con UnitTest::RunAllTests() en el interior.

Luego, de alguna manera, tenga la primera versión del proyecto y ejecute la segunda durante su proceso de compilación. Todavía no sé cómo hacer eso, pero puedo averiguarlo por mi cuenta.

Mis preguntas son:

  1. este es el método correcto?
  2. ¿Tengo que crear también un proyecto para el framework UnitTest ++, para permitir que otras personas lo construyan en otras plataformas? ¿O está dejando caer la biblioteca compilada en la ruta del proyecto lo suficiente?
  3. ¿cómo puedo organizar los directorios de estos proyectos juntos? Sería bueno poner las pruebas relacionadas con cada paquete en el mismo directorio que ese paquete, pero ¿está bien tener múltiples proyectos en el mismo árbol de directorios?
+0

Buena elección en UnitTest ++ –

Respuesta

4

Voy a responder en parte a mis propias preguntas, ya que he logrado que todo funcione.

  1. Siguiendo las instrucciones de la official documentation page, he puesto la carpeta unittest ++ con la librería compilada y todos los archivos de código fuente en el camino de mi proyecto.
  2. Luego creé un proyecto de prueba para todas las pruebas unitarias, con una función principal que contiene el famoso UnitTest::RunAllTests(). Puse $exe_output como un proceso de postconstrucción aquí, para que las pruebas se ejecuten automáticamente cada vez que construyo este proyecto.
  3. Creé el proyecto "real" donde irá mi código para probar. En la configuración de compilación, especifiqué el proyecto de prueba como una dependencia del proyecto real, de modo que cada vez que construyo el real, también construye el proyecto de prueba primero.

Con estos ajustes puedo trabajar en mis pruebas y en el código real, y solo tengo que construir el real para ejecutar las pruebas actualizadas. Cualquier prueba que falla también hará que la compilación falle.

Ahora quedan dos preguntas: "¿es este el mejor enfoque?" y "en este momento cada proyecto vive en un directorio diferente. ¿Es más prudente dejarlo así o debería poner cada prueba en la misma carpeta que el código real que se va a probar?"