← Retour

README.md

mon_menu/tests/README.md
# Lanceur de tests

Petit système de test pour **Mon Super Menu**.

Le dossier `tests/` contient les fichiers permettant de tester
individuellement les modules Lua du projet.

---

## Organisation

```text
tests/
├── lancer_tests.lua
├── test_titre.lua
├── test_menu.lua
└── README.md
```

### `lancer_tests.lua`

Lance le fichier de test indiqué en argument.

### `test_*.lua`

Contient le test d'un module particulier.

Exemple :

```text
test_titre.lua
```

teste :

```text
src/affichage/titre.lua
```

---

## Utilisation

Se placer dans le dossier `tests/` :

```bash
cd ~/LUA/mon_menu/tests
```

Puis lancer un test :

```bash
lua lancer_tests.lua test_titre.lua
```

Pour un autre test :

```bash
lua lancer_tests.lua test_menu.lua
```

---

## Fonctionnement

Le nom du test est transmis au programme Lua comme premier argument.

Exemple :

```bash
lua lancer_tests.lua test_titre.lua
```

Dans `lancer_tests.lua` :

```lua
local fichier_test = arg[1]
```

`arg[1]` contient alors :

```text
test_titre.lua
```

Le lanceur utilise ensuite `os.execute()` pour exécuter le fichier
de test demandé.

---

## Modules Lua

Les tests utilisent les modules présents dans `src/`.

Exemple :

```lua
local titre = require("affichage.titre")
```

Le lanceur configure `LUA_PATH` afin que Lua puisse trouver les modules
dans le dossier `src/`.

```text
tests/
   │
   ├── lancer_tests.lua
   │
   └── test_titre.lua
            │
            │ require("affichage.titre")
            ↓
         ../src/
            │
            └── affichage/
                  └── titre.lua
```

---

## Ajouter un nouveau test

Créer simplement un nouveau fichier :

```text
test_menu.lua
```

Puis lancer :

```bash
lua lancer_tests.lua test_menu.lua
```

Aucune modification de `lancer_tests.lua` n'est nécessaire.

---

## Erreurs courantes

### Aucun test indiqué

```bash
lua lancer_tests.lua
```

Le lanceur indique comment l'utiliser.

### Mauvais nom de fichier

```bash
lua lancer_tests.lua test_truc.lua
```

Si `test_truc.lua` n'existe pas, Lua ne pourra pas l'exécuter.

### Module introuvable

Vérifier le nom utilisé avec `require()`.

Correct :

```lua
local titre = require("affichage.titre")
```

Incorrect :

```lua
local titre = require("titre")
```

Le module doit correspondre à son emplacement dans `src/`.

---

## Principe

```text
Créer un module
      ↓
Créer son test
      ↓
Lancer le test
      ↓
Corriger
      ↓
Relancer
      ↓
Valider
```

Le lanceur reste volontairement simple.

L'objectif est de comprendre comment Lua charge les modules,
comment fonctionnent les arguments `arg` et comment `os.execute()`
permet de lancer un autre programme.