J'essaie de créer un projet CMake où je veux exécuter des tests en fonction du type de construction. E.g. si je fais un build de performance, je veux exécuter des tests de performance, etc.ctest n'appelle pas de tests spécifiques au type de construction
J'ai trouvé que add_test fournit le paramètre CONFIGURATIONS
à cette fin. Cependant, si je fournis un type de construction, ctest
ne trouve aucun test. Voici un CMakeLists.txt
reproduisant le comportement.
project (test NONE)
include (CTest)
add_test (NAME test
CONFIGURATIONS Release
COMMAND cowsay)
En shell:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
ctest
Sortie:
Running tests...
Test project /home/phil/cmaketest/build
No tests were found!!!
Si je lance
ctest -C Release
-je obtenir le comportement souhaité, à savoir le test est exécuté, mais je ne préférerai pas avoir à taper le -C Release
à la main.
Est-ce que je fais quelque chose de mal ici ou est ce comportement en retrait?
La chose étrange est que les différents tests ont besoin de différents indicateurs de compilation/lien à l'étape de construction, mais je peux faire quelque chose comme faire une version build avec 'cmake -DCMAKE_BUILD_TYPE = Release ..; cmake --build .' puis lancez un test de couverture de code avec 'ctest -C Coverage'. Mais cela devrait clairement être refusé. Mais avec ma configuration actuelle, cela donne des résultats sans signification. – user26756