Écrire des tests de base avec Python
Point de départ : nous supposerons que vous avez déjà configuré un basic ament_python package et que vous souhaitez y ajouter des tests.
Si vous utilisez ament_cmake_python, reportez-vous à la ament_cmake_python docs pour savoir comment rendre les tests détectables. Le contenu du test et l’invocation avec colcon
restent les mêmes.
Configuration du paquet
setup.py
Votre setup.py
doit avoir une dépendance de test sur pytest
dans l’appel à setup(...)
:
tests_require=['pytest'],
Fichiers et dossiers de test
Votre code de test doit aller dans un dossier nommé tests
à la racine de votre package.
Tout fichier contenant des tests que vous souhaitez exécuter doit avoir le modèle test_FOO.py
où FOO
peut être remplacé par n’importe quoi.
Exemple de mise en page du package :
awesome_ros_package/
awesome_ros_package/
__init__.py
fozzie.py
package.xml
setup.cfg
setup.py
tests/
test_init.py
test_copyright.py
test_fozzie.py
Contenu des tests
Vous pouvez maintenant écrire des tests à votre guise. Il y a beaucoup de ressources sur pytest, mais en bref, vous pouvez écrire des fonctions avec le préfixe test_
et inclure les déclarations assert que vous souhaitez.
def test_math():
assert 2 + 2 == 5 # This should fail for most mathematical systems
Commandes spéciales
Au-delà des commandes standard de test colcon, vous pouvez également spécifier des arguments au framework pytest
à partir de la ligne de commande avec le drapeau --pytest-args
. Par exemple, vous pouvez spécifier le nom de la fonction à exécuter avec
colcon test --packages-select <name-of-pkg> --pytest-args -k name_of_the_test_function