문제:
동일한 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
어느 한 쪽:
-
settings.json 파일에 다음 코드 조각을 추가합니다.
"go.testEnvVars": { "GOCACHE": "off" }
go.testEnvVars
다음을 포함하도록 의 값을 변경합니다 ."GOCACHE": "off"