Tengo dificultades para escribir Makefiles que construyan correctamente mis pruebas unitarias. A modo de ejemplo, supongamos que la estructura de archivos es el siguienteMakefile para pruebas unitarias en C++
src/foo.cpp
src/foo.hpp
src/main.cpp
tests/test_foo.cpp
tests/test_all.cpp
Así, para construir el test_all ejecutable, que había necesidad de construir test_foo.o que a su vez depende de test_foo.cpp sino también en src/foo. o
¿Cuál es la mejor práctica en este caso? ¿Un Makefile en la carpeta principal? Un Makefile por carpeta? Si es así, ¿cómo administro las dependencias en las carpetas?
Esto no parece tener en cuenta la dependencia de test_all.cpp en src/foo.o. P.ej. qué sucede después de hacer limpio; hacer la prueba en el directorio de nivel superior? –
Si las pruebas se realizan desde main.cpp, no habrá ningún problema de dependencia. –
Pero main.cpp será el ejecutable de la aplicación, no conducirá las pruebas. El ejecutable que realiza las pruebas debe residir en la carpeta de pruebas. –