[testing] 내 프로젝트의 모든 테스트를 ‘테스트’하는 방법은 무엇입니까?

go test명령은 *_test.go하나의 디렉토리에서만 파일을 처리합니다.

go test전체 프로젝트를 원합니다. 즉, 테스트는 *_test.godir의 모든 파일 ./과 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%


답변