Tôi đang cố gắng sử dụng go test -cover
để đo lường mức độ phù hợp của dịch vụ mà tôi đang xây dựng. Nó là một API REST và tôi đang thử nghiệm nó bằng cách kéo nó lên, thực hiện các yêu cầu HTTP kiểm tra và xem xét các phản hồi HTTP. Các thử nghiệm này không phải là một phần của gói dịch vụ và go tool cover
trả về mức độ kiểm tra 0%. Có cách nào để có được phạm vi kiểm tra thực tế không? Tôi mong đợi một thử nghiệm kịch bản trường hợp tốt nhất trên một điểm cuối nhất định sẽ bao gồm ít nhất 30-50% mã cho trình xử lý điểm cuối cụ thể và bằng cách thêm các thử nghiệm khác cho lỗi phổ biến để cải thiện thêm nữa.Làm cách nào để đo mức độ kiểm tra tích hợp Golang?
Trả lời
tôi chỉ vào chỉ thị -coverpkg
, điều mà tôi cần - đo lường phạm vi kiểm tra trong một gói cụ thể, ngay cả khi các thử nghiệm sử dụng gói này và không phải là một phần của gói đó. Ví dụ:
$ go test -cover -coverpkg mypackage ./src/api/...
ok /api 0.190s coverage: 50.8% of statements in mypackage
ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
so với
$ go test -cover ./src/api/...
ok /api 0.191s coverage: 71.0% of statements
ok /api/mypackage 0.023s coverage: 0.7% of statements
Trong ví dụ trên, tôi có kiểm tra trong main_test.go
mà là ở package main
đó là sử dụng package mypackage
. Tôi chủ yếu quan tâm đến mức độ phù hợp của package mypackage
vì nó chứa 99% logic kinh doanh trong dự án.
Tôi khá mới để Go, vì vậy nó là khá có thể rằng đây không phải là cách tốt nhất để đo lường phạm vi kiểm tra thông qua các bài kiểm tra tích hợp.
Theo như tôi biết, nếu bạn muốn bảo hiểm, bạn cần chạy go test -cover
. Tuy nhiên, việc thêm một lá cờ mà bạn có thể vượt qua sẽ cho phép các bài kiểm tra bổ sung này đủ dễ dàng, vì vậy bạn có thể làm cho chúng trở thành một phần của bộ thử nghiệm nhưng không chạy chúng một cách bình thường.
Vì vậy, thêm một cờ dòng lệnh trong bạn whatever_test.go
var integrationTest = flag.Bool("integration-test", false, "Run the integration tests")
Sau đó, trong mỗi bài kiểm tra làm điều gì đó như thế này
func TestSomething(t *testing.T){
if !*integrationTest {
t.Skip("Not running integration test")
}
// Do some integration testing
}
Sau đó, để chạy thử nghiệm hội nhập
go run -cover -integration-test
Cảm ơn bạn đã bình luận của bạn, nhưng điều này không chính xác những gì tôi cần. Vấn đề là tỷ lệ bảo hiểm không bao gồm mã trong các gói khác của dự án. Tôi sẽ cập nhật câu hỏi của tôi để phản ánh điều đó và làm cho nó rõ ràng hơn. –
@antonevangelatov Tôi hiểu ý bạn là gì! Tôi sẽ để lại câu trả lời này chỉ trong trường hợp bất cứ ai tìm thấy nó hữu ích, và tôi lưu ý '-coverpkg' trong câu trả lời của bạn, cảm ơn! –
- 1. Sử dụng mức độ phù hợp, làm cách nào để kiểm tra dòng này?
- 2. Cách đo độ bao phủ mã trong Golang?
- 3. Làm cách nào để loại trừ mã nguồn khỏi đo lường mức độ phù hợp trong IntelliJ IDEA?
- 4. Cách để đo mức tiêu thụ bộ nhớ trong khi chạy các kiểm tra JUnit
- 5. Làm cách nào để sử dụng JavaScript để đo mức độ sáng của người dùng?
- 6. Làm cách nào để kiểm tra mức độ bận của HDD với PHP?
- 7. Kiểm tra để tích hợp liên tục
- 8. Làm thế nào để kiểm tra io.writer trong golang?
- 9. Cách tổ chức kiểm tra tích hợp?
- 10. Làm thế nào để kiểm tra đơn vị Maven khác nhau từ tích hợp Kiểm tra?
- 11. Mức độ đo âm thanh với AVPlayer
- 12. Làm thế nào để đặt mức độ đăng nhập trong khi chạy kiểm tra hàng hóa?
- 13. Làm cách nào để đo lường mức độ phù hợp chung cho các thành phần Polymer + .js?
- 14. Làm thế nào để kiểm tra net.Conn trong các bài kiểm tra đơn vị trong Golang?
- 15. Cách kiểm tra NaN trong golang
- 16. Android Gradle Jacoco: thiết bị đo đạc trực tuyến cho các bài kiểm tra tích hợp
- 17. Kiểm tra Golang Goroutine
- 18. Làm cách nào để kiểm tra đơn vị và tích hợp kiểm tra các gói SSIS của tôi?
- 19. Mức độ liên quan của Solr - Cách kiểm tra A/B cho chất lượng tìm kiếm?
- 20. Kiểm tra điều kiện để kiểm tra mức độ hiển thị trong JavaScript
- 21. Cách đặt mức nhật ký khi chạy Kiểm tra đo qua trình cắm Maven
- 22. Kiểm tra mức độ phù hợp để khớp mẫu ở Scala 2.11
- 23. Kiểm tra tích hợp RabbitMQ và luồng
- 24. Làm cách nào để kiểm tra tích hợp Twitter iOS 5 trong trình mô phỏng?
- 25. Kiểm tra tích hợp trong CakePHP 2.0
- 26. golang - Cách kiểm tra thông tin multipart.File
- 27. Làm cách nào để phân tích Soap Envelope ở Golang?
- 28. Kết hợp SQL Server Freetext - làm cách nào để sắp xếp theo mức độ liên quan
- 29. Bộ lọc kiểm tra tích hợp Grails
- 30. kiểm tra tích hợp commander.js cho CLI
Tuyệt vời! Tôi chỉ liên kết [thread golang-nut có liên quan] này (https://groups.google.com/forum/#!topic/golang-nuts/fnDBPPUDdQ4). – Simon
Cảm ơn, Simon. Đây thực sự là những gì tôi đang tìm kiếm! –