2016-04-19 12 views
1

Ich muss ein Go-Projekt von einem Kollegen übernehmen und ich habe noch nie berührt Go und es hat keine Tests, so habe ich begonnen, sie hinzuzufügen, aber ich kann sie nicht ausführen.Laufen gehen Tests von Root-Projekt-Ordner

Der Befehl go zum Ausführen von Tests ist go test, aber es scheint nicht auf der Stammebene ausgeführt werden.

Meine Projektstruktur ist:

/project/main.go 
/project/engine/*.go 
/project/api/*.go 

Wenn ich cd entweder engine oder api und laufen go test es funktioniert, aber nicht im Stammordner.

cd /project 
go test 

?  /project [no test files] 

Gibt es trotzdem alle Tests von der Wurzel aus laufen?

Antwort

2

Sie können den Operator ... (Ellipse) verwenden, um alle Unterpakete des aktuellen Pakets zu testen. So: go test ./....

Es gibt andere Lösungen, die Sie vielleicht später versuchen möchten, wenn Sie etwas anspruchsvolleres tun, wie das Tool list. So (zum Beispiel): go test $(go list ./... | grep [regex]). Das ist nützlich, um das Verzeichnis vendor von Ihren Tests auszuschließen.

Eine andere Sache, die Sie vielleicht wissen möchten, ist der gt Befehl, der hier https://godoc.org/rsc.io/gt gefunden werden kann, und Caching zum go test Befehl hinzufügen.

Schließlich, zögern Sie nicht zu lesen https://blog.golang.org/cover, um Informationen über Code-Coverage-Analyse in Golang zu erhalten.

Verwandte Themen