diff --git a/ecrire/tests/Filesystem/CreerCheminTest.php b/ecrire/tests/Filesystem/CreerCheminTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..30a10584e33d1750118a9fe01538ad1b1eecd39c
--- /dev/null
+++ b/ecrire/tests/Filesystem/CreerCheminTest.php
@@ -0,0 +1,52 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Spip\Test\Filesystem;
+
+use PHPUnit\Framework\Attributes\DataProvider;
+use PHPUnit\Framework\TestCase;
+
+class CreerCheminTest extends TestCase
+{
+	private int $nb_dossiers_squelettes;
+
+	public static function setUpBeforeClass(): void {
+		include_spip('inc/utils');
+	}
+
+	public function setUp(): void {
+	}
+
+	public function testAddCheminSansDossierSquelettes() {
+		$GLOBALS['dossier_squelettes'] = '';
+		$chemins = creer_chemin();
+		$this->assertIsArray($chemins);
+
+		_chemin('toto');
+		$_chemins = creer_chemin();
+
+		$this->assertIsArray($_chemins);
+		$this->assertEquals(count($chemins), count($_chemins) - 1, 'Erreur ajout chemin par la fonction _chemin() : mauvais compte');
+		if (is_dir(_DIR_RACINE . 'squelettes')) {
+			$this->assertEquals('toto/', $_chemins[1], 'Erreur ajout chemin par la fonction _chemin() : avec squelettes');
+		} else {
+			$this->assertEquals('toto/', $_chemins[0], 'Erreur ajout chemin par la fonction _chemin() : sans squelettes');
+		}
+	}
+
+	public function testAddCheminAvecDossierSquelettes() {
+		$GLOBALS['dossier_squelettes'] = 'titi:tutu';
+		$chemins = creer_chemin();
+		$this->assertIsArray($chemins);
+
+		$squelettes = (int) is_dir(_DIR_RACINE . 'squelettes');
+		$dossier_squelettes = count(explode(':', $GLOBALS['dossier_squelettes']));
+
+		_chemin('toto');
+		$_chemins = creer_chemin();
+
+		$this->assertIsArray($_chemins);
+		$this->assertEquals('toto/', $_chemins[$squelettes + $dossier_squelettes], 'Erreur ajout chemin par la fonction _chemin() : avec dossier_squelettes');
+	}
+}
diff --git a/ecrire/tests/legacy/unit/path/creer_chemin.php b/ecrire/tests/legacy/unit/path/creer_chemin.php
deleted file mode 100644
index 5cdc1306b6f20dad59a8e1a9bbd1c099f8b0dc42..0000000000000000000000000000000000000000
--- a/ecrire/tests/legacy/unit/path/creer_chemin.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-$test = 'chemin';
-
-$remonte = __DIR__ . '/';
-
-while (!is_file($remonte . 'test.inc')) {
-	$remonte .= '../';
-}
-
-require $remonte . 'test.inc';
-
-$n = count(explode(':', $GLOBALS['dossier_squelettes']));
-
-$chemin = creer_chemin();
-
-_chemin('toto');
-
-$chemin1 = creer_chemin();
-
-if (count($chemin1) !== (is_countable($chemin) ? count($chemin) : 0) + 1) {
-	die('Erreur ajout chemin par la fonction _chemin() : mauvais compte' . var_dump($chemin) . var_dump($chemin1));
-}
-
-if ($GLOBALS['dossier_squelettes']) {
-	// toto a été ajouté après les chemins de dossier squelettes
-	if ($chemin1[$n] !== 'toto/' && $chemin1[$n + 1] !== 'toto/') {
-		die('Erreur ajout chemin par la fonction _chemin() : avec dossier_squelettes' . var_dump($chemin) . var_dump(
-			$chemin1
-		));
-	}
-} elseif (@is_dir(_DIR_RACINE . 'squelettes')) {
-	if ($chemin1[1] !== 'toto/') {
-		die('Erreur ajout chemin par la fonction _chemin() : sans dossier_squelettes avec répertoire squelettes' . var_dump(
-			$chemin
-		) . var_dump($chemin1));
-	}
-} elseif ($chemin1[0] !== 'toto/') {
-	die('Erreur ajout chemin par la fonction _chemin() : sans dossier_squelettes sans répertoire squelettes' . var_dump(
-		$chemin
-	) . var_dump($chemin1));
-}
-
-$GLOBALS['dossier_squelettes'] = 'titi:' . $GLOBALS['dossier_squelettes'];
-
-$chemin2 = creer_chemin();
-
-if ((is_countable($chemin2) ? count($chemin2) : 0) === count($chemin1) || reset($chemin2) !== 'titi/') {
-	die('Erreur prise en compte dossier squelette' . var_dump($chemin1) . var_dump($chemin2));
-}
-
-echo 'OK';