[testing] 강제 재 테스트 또는 테스트 캐싱 비활성화

문제:

동일한 go 테스트를 두 번 실행하면 두 번째 실행이 전혀 수행되지 않습니다. 결과는 첫 번째 실행에서 캐시 된 결과입니다.

PASS
ok      tester/apitests    (cached)

연결

이미 https://golang.org/cmd/go/#hdr-Testing_flags를 확인 했지만 해당 목적을위한 cli 플래그가 없습니다.

질문:

테스트 결과를 캐시하지 않고 항상 테스트를 실행하도록 강제로 이동할 가능성이 있습니까?



답변

테스트 플래그 문서에 설명 된대로 몇 가지 옵션이 있습니다 .

  • go clean -testcache: 모든 테스트 결과 만료
  • 테스트 실행시 캐시 할 수없는 플래그를 사용합니다. 관용적 인 방법은-count=1

즉, 코드 또는 테스트 코드를 변경하면 캐시 된 테스트 결과가 무효화되므로 (로컬 파일 또는 환경 변수를 사용할 때도 확장 논리가 있음) 테스트 캐시를 수동으로 무효화 할 필요가 없습니다.


답변

Go11에서는 GOCACHE모듈과 함께 사용하여 캐시를 비활성화 할 수 없었고 -count=1대신 다음을 사용 했습니다.

go test -count=1

Go11 이전 :

GOCACHE=off go test

또는 테스트 캐시를 정리하고 테스트를 다시 실행합니다.

go clean -testcache && go test


답변

도 있습니다 GOCACHE=off언급 여기 .


답변

이 문제를 해결 한 방법 (macOS에서 Visual Studio Code를 사용하고 있습니다) :

코드> 환경 설정> 설정

...설정 페이지의 오른쪽을 클릭 하십시오.

딸깍 하는 소리 Open settings.json

어느 한 쪽:

  1. settings.json 파일에 다음 코드 조각을 추가합니다.

    "go.testEnvVars": {
        "GOCACHE": "off"
    }
    
  2. go.testEnvVars다음을 포함하도록 의 값을 변경합니다 ."GOCACHE": "off"


답변