go test
คำสั่งครอบคลุม*_test.go
ไฟล์ในเพียงหนึ่ง dir
ฉันต้องการgo test
โครงการทั้งหมดซึ่งหมายความว่าการทดสอบควรครอบคลุม*_test.go
ไฟล์ทั้งหมดในผบ. ./
และผบ. ต้นไม้สินธุทั้งหมดใต้ผบ./
.
คำสั่งให้ทำคืออะไร
go test
คำสั่งครอบคลุม*_test.go
ไฟล์ในเพียงหนึ่ง dir
ฉันต้องการgo test
โครงการทั้งหมดซึ่งหมายความว่าการทดสอบควรครอบคลุม*_test.go
ไฟล์ทั้งหมดในผบ. ./
และผบ. ต้นไม้สินธุทั้งหมดใต้ผบ./
.
คำสั่งให้ทำคืออะไร
คำตอบ:
สิ่งนี้ควรเรียกใช้การทดสอบทั้งหมดในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมด:
$ go test ./...
สิ่งนี้ควรเรียกใช้การทดสอบทั้งหมดสำหรับไดเรกทอรีที่ระบุ:
$ go test ./tests/... ./unit-tests/... ./my-packages/...
สิ่งนี้ควรเรียกใช้การทดสอบทั้งหมดด้วยเส้นทางการนำเข้าที่ขึ้นต้นด้วยfoo/
:
$ go test foo/...
สิ่งนี้ควรเรียกใช้การทดสอบเส้นทางการนำเข้าทั้งหมดที่ขึ้นต้นด้วยfoo
:
$ go test foo...
สิ่งนี้ควรเรียกใช้การทดสอบทั้งหมดใน $ GOPATH ของคุณ:
$ go test ...
go: warning: "subdir/..." matched no packages
go test ./...
เป็นคำสั่งที่ยอดเยี่ยมจริงๆ! ขอบคุณที่ช่วย :)
ตั้งแต่ Go 1.9 เป็นต้นไปให้ใช้
go test ./...
ใน Go 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 / problems / 2366 , ความคิดเห็นของ @ nickgrim
./...
ไม่ตรงกับ./vendor/
ไดเรกทอรีอีกต่อไปดังนั้นคุณสามารถเรียกใช้การทดสอบทั้งหมดของคุณและไม่มีการทดสอบผู้ขายด้วยgo test ./...
โครงสร้างโฟลเดอร์
ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
ไปทดสอบคำสั่งคำสั่ง
ProjectName$ go test -v ./...
ProjectName$ go test ./...
ProjectName$ go test -cover ./...
รายงานความครอบคลุมสำหรับโครงการทั้งหมด
ok ProjectName/folderName1 10%
ok ProjectName/folerName2 90%
ok ProjectName/folerName2 85%
...
ในตัวอย่างสุดท้ายจะต้องหลบหนี, IEgo test \...