Ao escrever testes para um software, por exemplo, uma biblioteca, você prefere compilar todos os testes de unidade em um ou separá-los em vários executáveis?
A razão pela qual estou perguntando é porque atualmente estou usando o CUnit para testar uma biblioteca em que estou trabalhando. Os testes são divididos em conjuntos separados, compilados em um executável completo com saída impressa para falhas. Agora, o sistema de compilação para essa biblioteca é o CMake (que, apesar do nome, tem pouco a ver com CUnit), que vem com sua própria estrutura de teste, CTest . O CTest me permite registrar uma lista de executáveis que servem como testes.
Estou pensando em usar o CTest para testes automatizados. No entanto, isso exigiria que eu dividisse os testes que escrevi até agora em destinos de compilação separados. Caso contrário, não posso realmente utilizar alguns dos recursos avançados do CTests, como a execução seletiva de testes.
Sei que isso é mais uma questão de quais ferramentas usar, seu manuseio e convenções, mas, além disso, existem outras razões para preferir um único teste executável do que os separados? Ou vice-versa?