Dans Ruby, en particulier RSpec, vous pouvez dire au lanceur de tests d'abandonner le premier test qui ne passe pas par l'indicateur de ligne de commande --fail-fast. Cela aide beaucoup à ne pas perdre de temps ou à ne pas perdre de vue lors de la correction de nombreux tests d'affilée, par exemple lors d'un développement piloté par les tests ou par le comportement.

Maintenant sur Elixir avec ExUnit, je cherche un moyen de faire exactement cela. Y a-t-il un moyen de faire cela?

4
aef 23 mai 2018 à 15:35

3 réponses

Meilleure réponse

Il existe une telle option depuis Elixir 1.8.

Utilisez le commutateur --max-failures pour limiter le nombre de tests évalués avec échec. Pour arrêter la suite de tests après le premier échec, exécutez ceci:

mix test --max-failures 1
1
Nic Nilov 16 janv. 2020 à 17:44

Cela n'a pas beaucoup de sens puisque les tests dans Elixir doivent a) être exécutés à une vitesse fulgurante et b) dans la plupart des cas doivent être exécutés de manière asynchrone. L'arrêt immédiat de la suite de tests en cas d'échec du test est un anti-pattern et c'est pourquoi il n'est pas autorisé par les auteurs ExUnit.

On a toujours la possibilité de tirer sur sa propre jambe: il suffit d'implémenter un gestionnaire personnalisé pour EventManager et tuez le application entière sur l'événement" test échoué ".


Pour BDD, on utilise de préférence tags, exécutant le suite de tests avec uniquement cette fonctionnalité incluse. De cette façon, vous aurez la possibilité d'exécuter des tests par fonctionnalité à tout moment dans le futur.

De plus, en dernier recours, on peut exécuter un cas spécifique uniquement en passant le nom de fichier à mix test et / ou un test spécifique uniquement en passant le nom de fichier suivi de deux points et d'un numéro de ligne.

0
Aleksei Matiushkin 23 mai 2018 à 14:23

Malheureusement, il n'y a (à ma connaissance) aucun indicateur de ce type implémenté.

Cependant, vous pouvez exécuter un seul test en

mix test path/to/testfile.exs:12

Où 12 est le numéro de ligne du test.

J'espère que cela pourra aider!

1
jfornoff 23 mai 2018 à 13:19