이 go test
명령은 *_test.go
하나의 디렉토리에서만 파일을 처리합니다.
go test
전체 프로젝트를 원합니다. 즉, 테스트는 *_test.go
dir의 모든 파일 ./
과 dir 아래의 모든 chindren tree dir을 포함해야합니다 ./
.
이를 수행하는 명령은 무엇입니까?
답변
현재 디렉토리와 모든 서브 디렉토리에서 모든 테스트를 실행해야합니다.
$ go test ./...
주어진 특정 디렉토리에 대해 모든 테스트를 실행해야합니다.
$ go test ./tests/... ./unit-tests/... ./my-packages/...
가져 오기 경로가 앞에 붙은 모든 테스트를 실행해야합니다 foo/
.
$ go test foo/...
모든 접두사 가져 오기 경로를 foo
다음 과 같이 실행해야합니다 .
$ go test foo...
$ GOPATH에서 모든 테스트를 실행해야합니다.
$ go test ...
답변
이후 이동 1.9에서 사용
go test ./...
1.6에서 1.8 사이에는 ./...
일치하는 vendor
디렉토리도 있습니다. 공급 업체 패키지를 건너 뛰려면
go test $(go list ./... | grep -v /vendor/)
출처 : 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의 의견.
답변
폴더 구조
ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
go test 명령 명령
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
전체 프로젝트에 대한 범위 보고서
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%