Pytanie Jak przetestować wszystkie testy w moim projekcie?


The go test pokrywy poleceń *_test.go pliki tylko w jednym reż.

chcę go test cały projekt, co oznacza, że ​​test powinien obejmować wszystkie *_test.go pliki w reż ./ i każdy chindren tree reż pod reż ./.

Jakie jest polecenie, aby to zrobić?


76
2018-05-03 06:33


pochodzenie




Odpowiedzi:


To powinno uruchomić wszystkie testy w bieżącym katalogu i wszystkich jego podkatalogach:

$ go test ./...

To powinno uruchomić wszystkie testy ze ścieżką importu poprzedzoną prefiksem foo/:

$ go test foo/...

Powinno to spowodować uruchomienie wszystkich ścieżek importu testów poprzedzonych prefiksem foo:

$ go test foo...

To powinno uruchomić wszystkie testy w twoim $ GOPATH:

$ go test ...

150
2018-05-03 07:05



FYI w zsh, nagie ... w ostatnim przykładzie musi uciekać, IE go test \... - Gabe Kopley


Od wersji Go 1.9, posługiwać się

go test ./...

W Go 1.6 do 1.8, ./... dopasowane również do vendor informator. Aby pominąć pakiety vendor, używałbyś

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

Źródła: 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, @ nickgrim's comment.


43
2018-03-07 20:01



Tak proste, jak to wygląda, sprawia, że ​​korzystanie z niego jest znacznie bardziej skomplikowane dla osób pracujących w systemie Windows (nie jestem, ale niektórzy z moich kolegów z zespołu). Piękno Go działającego na każdej platformie bez potrzeby używania Makefile jest świetne. - Konrad Kleine
Dobra uwaga i była odpowiedzią na mój problem - Sion
Warto to podkreślić od wersji Go 1.9  ./... nie pasuje już do ./vendor/ katalog, dzięki czemu można uruchomić wszystkie testy i żaden z testów producenta go test ./... - nickgrim


Struktura folderów

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

polecenie przejdź do polecenia Command

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

Raport pokrycia dla całego projektu

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

3
2018-05-21 11:38



To było naprawdę pomocne - The Digital Ninja