Testen benutzerdefinierter Befehlszeilenflags in Go-Unit-Tests
In einer modularen Go-Anwendung mit Unit-Tests das Festlegen benutzerdefinierter Befehlszeilenflags für Spezifische Tests können sich als Herausforderung erweisen. Die Verwendung des Flag-Pakets zum Setzen von Flags bei der Testinitialisierung kann zu Fehlern beim Ausführen der Tests führen.
Problem
Beim Ausführen des Testbefehls:
go test -test.v ./... -gamedir.custom=c:/resources
Der folgende Fehler kann auftreten:
flag provided but not defined: -gamedir.custom
Dieser Fehler weist darauf hin, dass das Flag -gamedir.custom von nicht erkannt wird test ausführbare Datei.
Analyse
Das Problem tritt auf, weil der Befehl go test alle Tests in einem Arbeitsbereich ausführt und die bereitgestellten Flags auf alle anwendet. Wenn jedoch ein bestimmter Test das Flag -gamedir.custom nicht verwendet, schlägt die Testausführung mit dem Fehler „Undefiniert“ fehl.
Lösung
Um dieses Problem zu beheben können Sie go test für jede ausführbare Testdatei separat ausführen und dabei die entsprechenden Flags für jeden Test angeben. Dies kann erreicht werden, indem der Befehl so geändert wird, dass die ausführbare Testdatei direkt übergeben wird:
go test -test.v ./path/to/test.go -gamedir.custom=c:/resources
Dieser Ansatz stellt sicher, dass nur die angegebene ausführbare Testdatei das Flag -gamedir.custom erhält, wodurch der Fehler mit dem undefinierten Flag behoben wird.
Das obige ist der detaillierte Inhalt vonWie teste ich benutzerdefinierte Befehlszeilenflags in Go-Unit-Tests richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!