c++ - unitarios - reporte de pruebas unitarias
Proyecto de Visual C++: mejor configuraciĆ³n de prueba de unidad (2)
Aquí tenemos una aplicación de consola de C ++ bastante grande que ahora debe probarse unitariamente a través de Googletest.
Pensé que sería una buena idea almacenar las pruebas unitarias y la ejecución de la prueba dentro de un proyecto separado. Ambos proyectos residen dentro de la misma solución. Como la aplicación bajo prueba se compila como un archivo ejecutable y no como una biblioteca estática, no tengo ni idea de cómo hacer referencia al código de implementación de las pruebas de mi unidad dentro del proyecto de prueba.
No quiero poner todos los archivos de código como elementos existentes en el proyecto de prueba, también sería mucho trabajo dividir el ejecutable existente en una capa de biblioteca estática y un ejecutable de "envoltura" correspondiente.
Para resumir: ¿hay alguna buena idea para poner a prueba un proyecto ejecutable existente de C ++ utilizando un proyecto de prueba separado? :)
Para hacer el problema un poco más difícil: tengo que usar VS 2008 atm.
Creo que serás intersado por
- Error de vinculador: enlaza dos proyectos de tipo "aplicación" para usar Google Test.
- Vinculación a múltiples .obj para pruebas unitarias de una aplicación de consola
Básicamente dice que no tocas tu proyecto principal, agregas una acción de compilación posterior que agrega tus archivos obj a un archivo lib estático. Luego puede vincular su proyecto de prueba con esta biblioteca estática.
En mi opinión, ofrece muchas ventajas, como que no modificas tu proyecto principal, el proyecto de prueba estará siempre actualizado, ...
Una posibilidad que se me ocurre es agregar todas las fuentes del proyecto principal al proyecto de prueba de la unidad como un enlace:
Visual Studio: cómo crear dos proyectos utilizando las mismas fuentes
La segunda opción sería utilizar una acción posterior en el proyecto principal y compilar el proyecto principal o parte de él desde la línea de comando en una biblioteca que se puede vincular al proyecto de prueba de la unidad. De esta forma, una acción de "compilación" produciría un archivo exe y un archivo dll / lib.
Tercera opción: combinen de alguna manera las dos opciones anteriores: administre el proyecto de prueba unitaria fuera de VS: compile las fuentes del proyecto principal desde un script de compilación (archivo por lotes simple o scons, make, etc.) con las fuentes de las pruebas y ejecutar desde la línea de comando.