Exécution du test Go dans le répertoire parent de plusieurs modules Go
Lorsque vous rencontrez une structure de répertoires avec plusieurs modules Go situés dans des sous-répertoires, exécutez le test Go à partir du répertoire parent peut poser un défi. L'extrait de code suivant illustre ce problème :
/root /one go.mod go.sum main.go main_test.go /two go.mod go.sum main.go main_test.go
L'exécution de go test./... à partir du répertoire racine entraînera l'erreur :
go: warning: "./..." matched no packages no packages to test
Cela se produit car go test est spécifiquement conçu pour fonctionner sur un seul module situé soit dans le répertoire courant, soit dans son parent. Il ne prend pas en charge les modules imbriqués ni l'exécution de tests à partir d'un répertoire parent de plusieurs modules.
Pour résoudre ce problème, une solution consiste à créer un script shell ou à utiliser un utilitaire tel que find pour accéder à chaque module individuel et exécuter go tester dans ces répertoires. Par exemple :
cd /root/one go test . cd /root/two go test .
Alternativement, certains projets peuvent utiliser un script Makefile ou test.sh pour automatiser ce processus. Par exemple, le script test.sh du projet hypothétique suivant parcourt une liste de modules et exécute go test pour chaque répertoire :
#!/bin/bash modules="one two three" for module in $modules; do cd $module go test . cd .. done
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!