Làm thế nào để 'đi kiểm tra' tất cả các bài kiểm tra trong dự án của tôi?


141

Các go testlệnh bao gồm *_test.gocác file chỉ trong một thư mục.

Tôi muốn go testtoàn bộ dự án, có nghĩa là thử nghiệm sẽ bao gồm tất cả *_test.gocác tệp trong thư mục ./và mọi thư mục cây chindren dưới thư mục ./.

Lệnh để làm điều này là gì?

Câu trả lời:


278

Điều này sẽ chạy tất cả các bài kiểm tra trong thư mục hiện tại và tất cả các thư mục con của nó:

$ go test ./...

Điều này sẽ chạy tất cả các bài kiểm tra cho các thư mục cụ thể:

$ go test ./tests/... ./unit-tests/... ./my-packages/...

Điều này sẽ chạy tất cả các thử nghiệm với đường dẫn nhập có tiền tố foo/:

$ go test foo/...

Điều này sẽ chạy tất cả các đường dẫn nhập kiểm tra có tiền tố foo:

$ go test foo...

Điều này sẽ chạy tất cả các bài kiểm tra trong $ GOPATH của bạn:

$ go test ...

4
FYI trong zsh, trần ...trong ví dụ cuối cùng phải được thoát, IEgo test \...
Gabe Kopley

Khi tôi đang cố gắng chạy tất cả các bài kiểm tra trong tiểu thư tôi đang nhậngo: warning: "subdir/..." matched no packages
Ivan Aracki

@zzzz làm thế nào để chạy thử nghiệm cho các thư mục cụ thể? nói "đi kiểm tra foo ... bar ...?
Omurbek Kadyrbekov

go test ./...thực sự là một mệnh lệnh tuyệt vời!. Cảm ơn vì đã giúp đỡ :)
ong vò vẽ

53

Từ Go 1.9 trở đi , sử dụng

go test ./...

Trong Go 1.6 qua 1.8, các ./...lần xuất hiện cũng là vendorthư mục . Để bỏ qua các gói trả thù, bạn sẽ sử dụng

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

Nguồn: 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 / problems / 2366 , @ nickgrim's bình luận.


1
Dễ dàng như giải pháp này, nó khiến mọi người trên Windows trở nên phức tạp hơn nhiều (tôi không phải nhưng một số đồng đội của tôi) chạy nó. Vẻ đẹp của Go chạy tự nhiên trên mỗi nền tảng mà không cần Makefile là tuyệt vời.
Konrad Kleine

5
Worth chỉ ra rằng kể từ Go 1.9 ./... không còn phù hợp với ./vendor/thư mục, vì vậy bạn có thể chạy tất cả các bài kiểm tra của mình và không có bài kiểm tra nào của nhà cung cấp vớigo test ./...
nickgrim

11

Cấu trúc thư mục

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

đi kiểm tra lệnh

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

Báo cáo bảo hiểm cho toàn bộ dự án

ok      ProjectName/folderName1 10%
ok      ProjectName/folerName2  90%
ok      ProjectName/folerName2  85%
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.