Lorsque vous écrivez des tests pour un seul logiciel, par exemple une bibliothèque, préférez-vous compiler tous les tests unitaires en un seul, ou les séparer en plusieurs exécutables?
La raison pour laquelle je pose la question est que j'utilise actuellement CUnit pour tester une bibliothèque sur laquelle je travaille. Les tests sont divisés en suites distinctes qui sont compilées en un exécutable complet avec une sortie imprimée pour les échecs. Maintenant, le système de construction de cette bibliothèque est CMake (qui, malgré son nom, n'a pas grand-chose à voir avec CUnit), qui vient avec son propre framework de test, CTest . CTest me permet d'enregistrer une liste d'exécutables qui servent de tests.
Je me demande s'il faut utiliser CTest pour des tests automatisés. Cependant, cela nécessiterait que je divise les tests que j'ai écrits jusqu'à présent en cibles de compilation distinctes. Sinon, je ne peux pas vraiment utiliser certaines des fonctionnalités avancées de CTests, telles que l'exécution sélective de tests.
Je me rends compte qu'il s'agit plus d'une question des outils à utiliser, de leur gestion et de leurs conventions, mais à part cela, y a-t-il d'autres raisons de préférer un exécutable de test unique à des exécutables séparés? Ou vice versa?