Al escribir pruebas para una pieza de software, por ejemplo, una biblioteca, ¿prefiere compilar todas las pruebas unitarias en una o separarlas en varios ejecutables?
La razón por la que pregunto es porque actualmente estoy usando CUnit para probar una biblioteca en la que estoy trabajando. Las pruebas se dividen en suites separadas que se compilan en un ejecutable completo con salida impresa para fallas. Ahora, el sistema de compilación para esa biblioteca es CMake (que, a pesar de su nombre, tiene poco que ver con CUnit), que viene con su propio marco de prueba, CTest . CTest me permite registrar una lista de ejecutables que sirven como pruebas.
Estoy pensando si usar CTest para las pruebas automatizadas. Sin embargo, esto requeriría que divida las pruebas que he escrito hasta ahora en objetivos de compilación separados. De lo contrario, no puedo utilizar algunas de las funciones avanzadas de CTests, como la ejecución selectiva de pruebas.
Me doy cuenta de que esto es más una cuestión de qué herramientas usar y su manejo y convenciones, pero aparte de eso, ¿hay alguna otra razón para preferir un único ejecutable de prueba en lugar de otros? ¿O viceversa?