"Go help testflag"의 두 판 사이의 차이

43번째 줄: 43번째 줄:
:cont: init: 이 문장이 몇 번 실행되는가?
:cont: init: 이 문장이 몇 번 실행되는가?
:atomic: init: count와 유사하나, 멀티스레드 테스트에서 정확하다, 훨씬 비싼 테스트
:atomic: init: count와 유사하나, 멀티스레드 테스트에서 정확하다, 훨씬 비싼 테스트
* -cover를 설정하자.
* -cover도 설정해야 한다.
|-
|-
| -coverpkg pattern1,pattern2,pattern3
| -coverpkg pattern1,pattern2,pattern3

2023년 6월 6일 (화) 13:31 판

1 개요

go help testflag

'go test' 명령어는 'go test' 자체에 적용되는 플래그와 결과 테스트 바이너리에 적용되는 플래그를 모두 사용한다.

일부 플래그는 프로파일링을 제어하며 "go tool pprof"에 적합한 실행 프로파일을 작성한다. 자세한 내용은 "go tool pprof -h"를 실행하여 알아보자. pprof의 --alloc_space, --alloc_objects, --show_bytes 옵션은 정보 표시방법을 제어한다.

다음 플래그는 'go test' 명령어에서 인식되며 테스트 실행을 제어한다.

-bench regexp
  • 정규식(regexp)과 매칭되는 벤치마크만 실행한다.
  • 기본적으로 벤치마크는 실행되지 않는다.
  • 모든 벤치마크를 실행하려면 '-bench .' 또는 '-bench=.' 를 사용하자.
  • 정규표현식은 대괄호가 없는 슬래시(/) 문자에 의해 시퀀스로 분할되며, 벤치마크 식별자의 각 부분은 시퀀스 내의 해당 요소(있는 경우)와 매칭되어야 한다. 서브 벤치마크를 식별하기 위해 매칭 항목의 가능한 상위 항목을 b.N=1로 실행한다. 예를 들어, -bench=X/Y가 주어지면 X와 일치하는 최상위 벤치마크는 b.N=1로 실행되어 Y와 일치하는 서브 벤치마크를 찾은 다음 전체가 실행된다.
-benchtime t
  • time.Duration(예: -benchtime 1h30s)으로 지정된 t를 얻기 위해 각 벤치마크를 충분히 반복 실행한다.
  • 기본값은 1초(1s)이다.
  • 특수 구문 Nx는 벤치마크를 N번 실행한다는 의미이다(예: -benchtime 100x).
-count n
  • 각 테스트, 벤치마크, 퍼즈 시드를 n번 실행합니다(기본값 1).
  • -cpu가 설정된 경우 각 GOMAXPROCS 값에 대해 n번 실행합니다.
  • Example은 항상 한 번 실행됩니다. -count는 -fuzz에 매칭되는 fuzz 테스트에 적용되지 않는다.
-cover
  • 커버리지 분석을 활성화한다.
  • 커버리지는 컴파일 전에 소스 코드에 주석을 달아 작동하기 때문에, 커버리지가 활성화된 컴파일 및 테스트 실패는 원래 소스와 일치하지 않는 행 번호를 보고할 수 있다.
-covermode set,count,atomic
  • 테스트되는 패키지에 대한 커버리지 분석 모드를 설정한다.
  • -race가 활성화되지 않은 경우 기본값은 "set"이며, 활성화된 경우 "atomic"이다.
  • 값:
set: bool: 이 문장이 실행되는가?
cont: init: 이 문장이 몇 번 실행되는가?
atomic: init: count와 유사하나, 멀티스레드 테스트에서 정확하다, 훨씬 비싼 테스트
  • -cover도 설정해야 한다.
-coverpkg pattern1,pattern2,pattern3
-cpu 1,2,4
-failfast
-fuzz regexp
-fuzztime t
-fuzzminimizetime t
-json
-list regexp
-parallel n
-run regexp
-short
-shuffle off,on,N
-skip regexp
-timeout d
-v
-vet list

다음 플래그들도 'go test'에서 인식되며 실행 중에 테스트를 프로파일링하는 데 사용할 수 있다.

-benchmem
-blockprofile block.out
-blockprofilerate n
-coverprofile cover.out
-cpuprofile cpu.out
-memprofile mem.out
-memprofilerate n
-mutexprofile mutex.out
-mutexprofilefraction n
-outputdir directory
-trace trace.out

이러한 각 플래그는 -tesv.v 와 같이 선택적 'test.' 접두어로도 인식된다. 그러나 생성된 테스트 바이너리('go test -c'의 결과)를 직접 호출할 때는 접두어가 필수이다.

'go test' 명령어는, 테스트 바이너리를 호출하기 전에 선택적인 패키지 목록의 앞과 뒤에서, 인식된 플래그를 다시 쓰거나 제거한다.

2 같이 보기

3 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}