directorio / pruebas funciona bien con pruebas con nombres apropiados. En su caso, sería src / tests con archivos como src / tests / test_module2.c. Con sistemas menos triviales que involucran múltiples directorios de origen, tendría cosas como src / lib1 / tests y src / program1 / tests. Los programas de prueba individuales pueden estar en diferentes niveles de abstracción o cubrir diferentes funcionalidades (configuración, operación normal, prueba de esfuerzo usando hilos) en lugar de tener una relación 1: 1 con los archivos fuente.
Desea que el código de prueba esté en un subdirectorio del código de producto correspondiente porque eso funciona bien con las prácticas de desarrollo normales: cuando confirma el directorio actual en el software de control de revisión, tanto las pruebas como la fuente se registran. Compilación en el directorio fuente puede construir pruebas recursivamente. “make test” en el directorio fuente puede construirlo (si es necesario) y luego descender para ejecutar las pruebas. Las ramas del subárbol de la fuente y la prueba son más fáciles.
Es más probable que falten cosas cuando los directorios fuente y de prueba son hermanos, y eso no se escala a medida que los sistemas se vuelven demasiado grandes para que un solo directorio fuente sea práctico.
- Cómo pasar del desarrollador front-end al arquitecto de software
- ¿Alguna vez has visto un prototipo de software "desechable" en realidad desechado cuando llegó el momento de desarrollar el sistema de producción?
- ¿Cuáles son los patrones de diseño más utilizados en el código de producción sobre los que los recién graduados no tienen idea?
- Como desarrollador, ¿cómo trato con los malos gerentes de proyecto?
- ¿Cuáles son los posibles escenarios de prueba del software actiTIME?
Use la configuración del compilador para controlar de dónde provienen las inclusiones en lugar de incluirlas a través de rutas relativas (-I bajo unix). Esto se ve más limpio y es más tolerante con la refactorización que mueve las cosas.
Cunit funciona bien.