Maison > développement back-end > Golang > Comment tester plusieurs modules Go dans un répertoire parent ?

Comment tester plusieurs modules Go dans un répertoire parent ?

Barbara Streisand
Libérer: 2024-10-30 03:19:03
original
1074 Les gens l'ont consulté

How to Test Multiple Go Modules in a Parent Directory?

Test de plusieurs modules dans un répertoire parent

Lorsque vous travaillez avec plusieurs modules Go dans un répertoire parent, il peut être difficile d'exécuter des tests sur tous. Considérons une structure de répertoires comme celle ci-dessous :

/root
    /one
        go.mod
        go.sum
        main.go
        main_test.go
    /two
        go.mod
        go.sum
        main.go
        main_test.go
Copier après la connexion

Problème :

Tentative d'exécuter des tests pour tous les modules du répertoire parent à l'aide de go test./.. . entraîne l'erreur :

go: warning: "./..." matched no packages
no packages to test
Copier après la connexion

Solution :

La commande go test est conçue pour fonctionner sur un seul module enraciné dans le répertoire courant ou son parent. Il ne prend pas en charge le test des modules imbriqués.

Pour résoudre ce problème, vous devrez utiliser une astuce du shell. Une approche consiste à utiliser une combinaison de commandes find et xargs, comme suggéré par le commentaire de Cerise Limón. Les projets créent souvent un Makefile ou un script test.sh pour automatiser ce processus.

Pour les grands projets comportant de nombreux modules, une approche plus systématique consiste à maintenir une liste de tous les modules (comme dans le projet go-cloud de Google). . Le projet utilise ensuite des scripts qui parcourent la liste des modules et effectuent des tâches telles que l'exécution de tests pour chaque répertoire.

Exemple :

Le script test.sh suivant le démontre approche :

<code class="sh">#!/bin/bash

for module in $(cat allmodules); do
  cd $module
  go test
  cd ..
done</code>
Copier après la connexion

Remarque :

Vous n'aurez peut-être pas besoin d'un fichier séparé pour répertorier les modules, mais la mise en œuvre du projet go-cloud fournit un exemple de la façon dont les projets gèrent les tests multi-modules.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal