web-dev-qa-db-fra.com

Comment exécuter un test unitaire spécifique dans Rust?

J'ai des tests unitaires dans un package nommé school-info et il existe une fonction de test appelée repeat_students_should_not_get_full_marks.

Je peux exécuter tous les tests du module par cargo test --package school_info.

cargo test test-name correspondra et exécutera les tests qui contiennent test_name même si cela n'a pas été utile.

Comment puis-je exécuter uniquement le test repeat_students_should_not_get_full_marks sans exécuter tous les tests? Je n'ai pas trouvé de commande dans la documentation pour le faire.

8
co2f2e

En utilisant cargo test test-name filtre les tests qui commencent par test-name. Il est possible qu'il puisse exécuter plusieurs tests. Peu importe que la fonction de test soit dans un mod ou non, elle peut toujours exécuter plusieurs tests.

Vous pouvez éviter cela en ajoutant -- --exact comme argument.

Si votre test n'est dans aucun mod, vous pouvez simplement exécuter comme ceci:

cargo test test_fn_name -- --exact

Sinon, vous devez fournir un test avec un espace de noms complet:

cargo test test_mod_name::test_fn_name -- --exact

Pour votre cas, la solution sera:

cargo test --package school_info repeat_students_should_not_get_full_marks -- --exact
7
Ömer Erden