Tester sur le parcours ReScript

Apprends à tester tes exercices ReScript sur Exercism


Télécharge un exercice

Utilise l'Exercism CLI pour télécharger l'exercice sur lequel tu veux travailler.

exercism download --track=rescript --exercise=hello-world

Ensuite, place-toi dans le répertoire de l'exercice.

cd /path/to/exercism/rescript/hello-world

Installe les dépendances

Avant de lancer les tests, installe les dépendances de l'exercice.

npm install

Exécute les tests

Compile et exécute la suite de tests fournie avec exercism test ou npm run test.

Comprends les résultats des tests

L'exécuteur de tests affiche chaque test exécuté avec un statut de réussite ou d'échec.

1/3: no name given
  PASS - no name given
2/3: a name given
  FAIL - a name given
    ---
    operator: equal
    left:  One for you, one for me.
    right: One for Alice, one for me.
    ...
3/3: another name given
  FAIL - another name given
    ---
    operator: equal
    left:  One for you, one for me.
    right: One for Bob, one for me.
    ...

# Ran 3 tests (3 assertions)
# 1 passed
# 2 failed

left correspond à ce que ton code a renvoyé. right correspond à ce que le test attendait.

Comprends la structure de l'exercice

two-fer/
├── src/
│   ├── TwoFer.res   // your solution goes here
│   └── TwoFer.resi  // the optional interface file containing signatures
├── tests/
│   └── TwoFer_test.res // your test suite
├── package.json // used to install project dependencies
└── ...

Ici, TwoFer.resi est un fichier d'interface facultatif. Lorsqu'il est présent, il définit les signatures de fonctions que ta solution doit respecter et peut te servir d'indice sur ce qu'il faut implémenter.

Par exemple, si l'interface déclare :

let hello: unit => string

Ton implémentation doit définir :

let hello = () => "Hello, World!"

Erreurs de compilation

Si ton code ne compile pas, le compilateur de ReScript produit des messages d'erreur détaillés avec l'emplacement exact et les types attendus.

  We've found a bug for you!

  1 │ let x: string = 42

  This has type: int
  But it's expected to have type: string

  You can convert int to string with Int.toString.

Lis attentivement le message d'erreur, car il pointe généralement directement vers le problème.