web-dev-qa-db-fra.com

Comment "tester" tous les tests de mon projet?

Le go test la commande couvre *_test.go fichiers dans un seul répertoire.

Je veux go test l'ensemble du projet, ce qui signifie que le test doit couvrir tous les *_test.go fichiers dans le répertoire ./ et tous les répertoires chindren situés sous le répertoire ./.

Quelle est la commande pour faire cela?

108
hardPass

Ceci devrait exécuter tous les tests dans le répertoire courant et tous ses sous-répertoires:

$ go test ./...

Ceci devrait exécuter tous les tests avec le chemin d'importation avec le préfixe foo/:

$ go test foo/...

Cela devrait exécuter tous les chemins d’importation des tests avec le préfixe foo:

$ go test foo...

Ceci devrait exécuter tous les tests dans votre $ GOPATH:

$ go test ...
216
zzzz

à partir de Go 1.9 , utilisez

go test ./...

Dans les versions 1.6 à 1.8, le ./... correspond également au vendor répertoire . Pour ignorer les paquets vendus, vous utiliseriez

go test $(go list ./... | grep -v /vendor/)

Sources: https://github.com/golang/go/issues/11659 , https://github.com/golang/go/issues/14417 , - https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2366 , commentaire de @ nickgrim.

44
user7610

Structure des dossiers

ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go

go test command Command

   ProjectName$ go test -v ./...
    ProjectName$ go test  ./...
    ProjectName$ go test -cover ./...

Rapport de couverture pour l'ensemble du projet

ok      ProjectName/folderName1 10%
ok      ProjectName/folerName2  90%
ok      ProjectName/folerName2  85%
5
muthukumar