Teste sur le parcours Ruby

Apprends à tester tes exercices Ruby sur Exercism


Exécute les tests

Exécute les tests avec :

$ ruby hamming_test.rb

Seul le premier test sera exécuté, tous les autres ont été mis en attente à l'aide de la méthode skip. Supprime ou mets en commentaire le prochain skip au fur et à mesure que les tests passent.

Comprends les skip

La méthode skip demande à la suite de tests de ne pas exécuter un test. On l'utilise couramment pour éviter d'exécuter les tests d'une fonctionnalité pas encore implémentée, afin de pouvoir se concentrer sur la partie en cours de travail.

Le récapitulatif de l'exécution des tests indique le nombre de tests ignorés. Tu dois désactiver tous les skip avant de terminer un exercice.

Personnalise le rapport de tests

Si tu veux de la couleur, exécute les tests avec :

$ ruby hamming_test.rb -p

Si tu veux voir le nom des tests, exécute les tests avec :

$ ruby hamming_tests.rb -v

Si tu veux exécuter un seul test, tu peux en désigner un ou un groupe à l'aide d'une correspondance de type expression régulière.

$ ruby hamming_tests.rb -n /empty/

Tu peux aussi combiner les options.

Désactive tous les skip

Maintenant que tu sais sélectionner les tests, individuellement ou par groupes, que tu veux exécuter, tu vas peut-être vouloir désactiver tous les skip.

La méthode rapide et expéditive

Comme en Ruby on peut redéfinir les méthodes, si tu ajoutais cette ligne de code :

def skip ; end

comme ceci dans le fichier de test Hamming

class HammingTest < Minitest::Test
  def skip ; end
  def test_identical_strands

alors tous les skip seront toujours évalués, mais laisseront quand même les tests s'exécuter.

La méthode toujours rapide, mais plus propre

Bien sûr, modifier tous les fichiers au fil du temps peut devenir pénible, tu peux donc faire comme nous l'avons fait en développant les exercices... créer un fichier contenant la définition de skip, et le charger comme une bibliothèque quand on en a besoin.

Nous avons créé un dossier lib pour y ranger nos « aides », et il ressemble à ceci :

require 'minitest/autorun'
# You can use this to disable all skips in the current exercise by issuing the
# following command:
#     ruby -I../lib -rdisable_skip <filename_test.rb>

module Minitest
  class Test
    def skip(_msg='', _bt=caller)
    end
  end
end

L'explication de son utilisation figure en commentaire dans ce listing, et ce listing est complet.