go test -cover
을 사용하여 현재 구축중인 서비스의 테스트 범위를 측정하려고합니다. 그것은 REST API이며 테스트 HTTP 요청을 만들고 HTTP 응답을 검토하여이를 테스트합니다. 이 테스트는 서비스 팩키지의 일부가 아니며 go tool cover
은 테스트 적용 범위가 0 %입니다. 실제 테스트 커버리지를 얻을 수있는 방법이 있습니까? 주어진 엔드 포인트에서 최상의 엔드 포인트 시나리오 테스트가 특정 엔드 포인트 핸들러의 코드의 최소 30-50 %를 차지할 것으로 기대하고,이를 향상시키기 위해 일반적인 오류에 대한 테스트를 추가합니다.Golang 통합 테스트 커버리지를 측정하는 방법은 무엇입니까?
답변
를 실행 할 -coverpkg
지시어를 가리키며, 필요한 것을 수행합니다. 이 패키지를 사용하는 테스트 및 패키지의 일부가 아닌 테스트를 포함하여 특정 패키지의 테스트 적용 범위. 예를 들어
$ 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
비해 위의 예에서
$ go test -cover ./src/api/...
ok /api 0.191s coverage: 71.0% of statements
ok /api/mypackage 0.023s coverage: 0.7% of statements
에, I는
package mypackage
을 사용하는지에
package main
main_test.go
에서 테스트가. 나는 대부분 프로젝트의 비즈니스 로직의 99 %를 포함하고 있기 때문에
package mypackage
의 적용 범위에 관심이있다.
저는 매우 새로운 제품입니다. 따라서 이것이 통합 테스트를 통해 테스트 커버리지를 측정하는 가장 좋은 방법은 아닙니다.
범위를 알고 싶다면 go test -cover
을 실행해야합니다.
그러나 추가 테스트를 수행 할 수있는 플래그를 추가하기는 쉽기 때문에 테스트 스위트의 일부로 만들 수 있지만 정상적으로 실행하지는 마십시오.
그래서 각 테스트에 그런 다음 whatever_test.go
var integrationTest = flag.Bool("integration-test", false, "Run the integration tests")
에 명령 줄 플래그를 추가이
func TestSomething(t *testing.T){
if !*integrationTest {
t.Skip("Not running integration test")
}
// Do some integration testing
}
같은 그런 다음 내가했던 통합 테스트
go run -cover -integration-test
의견을 보내 주셔서 감사합니다. 그러나 이것이 필요한 것은 아닙니다. 문제는 적용 범위가 프로젝트의 다른 패키지에있는 코드를 포함하지 않는다는 것입니다. 나는 그것을 반영하고 명확하게하기 위해 나의 질문을 업데이트 할 것이다. –
@antonevangelatov 무슨 뜻인지 알 겠어! 누구나 유용하다고 생각한 경우를 대비하여이 답을 남겨 두겠다. 답안에'-coverpkg'를 적어 둡니다. 감사합니다! –
- 1. TCL 코드 커버리지를 측정하는 방법은 무엇입니까?
- 2. Xcode5 봇으로 테스트 커버리지를 보는 방법은 무엇입니까?
- 3. Golang Server에서 코드 커버리지를 얻으려면 어떻게해야합니까?
- 4. 통합 테스트에서 golang 코드 적용 범위는 무엇입니까?
- 5. Robolectric를 사용하여 테스트 커버리지를 계산하는 방법
- 6. Sonar에서는 테스트를 통해 테스트 커버리지를 보는 방법은 무엇입니까?
- 7. Sonar 용 Jacoco 테스트 커버리지를 결합하십시오.
- 8. 단위 테스트 golang 핸들러
- 9. Eclipse의 테스트 케이스에서 스칼라 코드 커버리지를 측정하십시오.
- 10. SW API를 측정하는 방법은 무엇입니까?
- 11. heroku에서 golang 테스트 실행
- 12. grails에서 통합 테스트 세션에 액세스하는 방법은 무엇입니까?
- 13. OpenCover - 테스트 당 커버리지를 보는 방법?
- 14. TeamCity : 낮은 단위 테스트 커버리지를 어떻게보고합니까?
- 15. Grails를 사용하여 테스트 커버리지를 얻는 방법?
- 16. 불일치지도에서 깊이를 측정하는 방법은 무엇입니까?
- 17. phpDoc 범위를 측정하는 방법은 무엇입니까?
- 18. web.py에서 런타임을 측정하는 방법은 무엇입니까?
- 19. 레이아웃 성능을 측정하는 방법은 무엇입니까?
- 20. 코드 크기를 측정하는 방법은 무엇입니까?
- 21. 시간 비용을 측정하는 방법은 무엇입니까?
- 22. TCP 배압을 측정하는 방법은 무엇입니까?
- 23. 페이지로드 시간을 측정하는 방법은 무엇입니까?
- 24. 소프트웨어 작업을 측정하는 방법은 무엇입니까?
- 25. 네트워크 압력을 측정하는 방법은 무엇입니까?
- 26. 모든 테스트 클래스가 아닌 몇 가지 테스트 클래스에 대해 cobertura 코드 커버리지를 실행하는 방법은 무엇입니까?
- 27. 데이터베이스 통합 테스트
- 28. Cobertura를 사용할 때 Sonar가 전반적인 테스트 커버리지를 계산할 수 있습니까?
- 29. 프로세스의 스택 크기를 측정하는 방법은 무엇입니까?
- 30. 통합 테스트 모범 사례
좋아요! 나는이 [관련 golang-nuts thread] (https://groups.google.com/forum/#!topic/golang-nuts/fnDBPPUDdQ4)를 연결하고 있습니다. – Simon
고마워, 사이먼. 이것은 내가 실제로 찾고 있던 것입니다! –