Heim > Backend-Entwicklung > Golang > Wie teste ich mehrere Go-Module in einem übergeordneten Verzeichnis?

Wie teste ich mehrere Go-Module in einem übergeordneten Verzeichnis?

Barbara Streisand
Freigeben: 2024-10-30 03:19:03
Original
1077 Leute haben es durchsucht

How to Test Multiple Go Modules in a Parent Directory?

Testen mehrerer Module in einem übergeordneten Verzeichnis

Beim Arbeiten mit mehreren Go-Modulen in einem übergeordneten Verzeichnis kann es schwierig sein, Tests übergreifend auszuführen alle von ihnen. Stellen Sie sich eine Verzeichnisstruktur wie die folgende vor:

/root
    /one
        go.mod
        go.sum
        main.go
        main_test.go
    /two
        go.mod
        go.sum
        main.go
        main_test.go
Nach dem Login kopieren

Problem:

Es wird versucht, mit go test./. Tests für alle Module im übergeordneten Verzeichnis auszuführen. . führt zu dem Fehler:

go: warning: "./..." matched no packages
no packages to test
Nach dem Login kopieren

Lösung:

Der Befehl go test ist für die Arbeit mit einem einzelnen Modul konzipiert, das im aktuellen Verzeichnis oder seinem übergeordneten Verzeichnis verwurzelt ist. Das Testen verschachtelter Module wird nicht unterstützt.

Um dieses Problem zu beheben, müssen Sie einen Shell-Trick verwenden. Ein Ansatz besteht darin, eine Kombination aus den Befehlen „find“ und „xargs“ zu verwenden, wie im Kommentar von Cerise Limón vorgeschlagen. Projekte erstellen oft ein Makefile oder ein test.sh-Skript, um diesen Prozess zu automatisieren.

Bei großen Projekten mit zahlreichen Modulen besteht ein systematischerer Ansatz darin, eine Liste aller Module zu führen (wie im Go-Cloud-Projekt von Google). . Das Projekt verwendet dann Skripte, die die Modulliste durchlaufen und Aufgaben wie das Ausführen von Tests für jedes Verzeichnis ausführen.

Beispiel:

Das folgende test.sh-Skript demonstriert dies Ansatz:

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

for module in $(cat allmodules); do
  cd $module
  go test
  cd ..
done</code>
Nach dem Login kopieren

Hinweis:

Sie benötigen möglicherweise keine separate Datei, um die Module aufzulisten, aber die Implementierung des Go-Cloud-Projekts bietet ein Beispiel dafür, wie größer es ist Projekte verwalten Tests mit mehreren Modulen.

Das obige ist der detaillierte Inhalt vonWie teste ich mehrere Go-Module in einem übergeordneten Verzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage