Quando scrivi dei test per un pezzo di software, ad esempio una libreria, preferisci compilare tutti i test di unità in uno o separarli in più eseguibili?
Il motivo per cui lo sto chiedendo è perché attualmente sto usando CUnit per testare una libreria su cui sto lavorando. I test sono suddivisi in suite separate che vengono compilate in un eseguibile completo di output stampato per i guasti. Ora, il sistema di compilazione per quella libreria è CMake (che, nonostante il suo nome, ha poco a che fare con CUnit), che viene fornito con proprio framework di test, CTest . CTest mi consente di registrare un elenco di eseguibili che servono da test.
Sto valutando se utilizzare CTest per le prove di test automatizzate. Tuttavia, questo mi richiederebbe di suddividere i test che ho scritto finora in obiettivi di compilazione separati. Altrimenti, non posso davvero utilizzare alcune delle funzionalità avanzate di CTests, come i test in esecuzione selettiva.
Mi rendo conto che si tratta più di quali strumenti utilizzare e della loro gestione e convenzioni, ma a parte questo, ci sono altri motivi per preferire un singolo test eseguibile su quelli separati? O viceversa?