Проблема:
Когда я запускаю один и тот же тест дважды, второй запуск вообще не выполняется. Результаты - кэшированные с первого запуска.
PASS
ok tester/apitests (cached)
Ссылки
Я уже проверял https://golang.org/cmd/go/#hdr-Testing_flags, но для этой цели нет флага cli.
Вопрос:
Есть ли возможность принудительно запустить тест, чтобы всегда запускать тест и не кешировать результаты теста.
go clean -testcache ./...
тоже работает (вверху монорепозитория)В Go11 я не мог отключить использование кеша
GOCACHE
с модулями,-count=1
вместо этого я использовал :go test -count=1
До Go11:
GOCACHE=off go test
Или очистите кеш теста и снова запустите тест:
go clean -testcache && go test
источник
Там же
GOCACHE=off
упоминается здесь .источник
go 1.11
и наличия функции модулей goGOCACHE=off
выдает ошибкуgo: cannot use modules with build cache disabled
. Лучше использовать предлагаемые-count 1
.GOCACHE
будет постепенно сокращаться в версии 1.12, поэтому использование сейчасgo test -count=1 ...
является более безопасным выбором.build cache is disabled by GOCACHE=off, but required as of Go 1.12
Как я это исправил (я использую Visual Studio Code на macOS):
Код> Настройки> Настройки
Щелкните
...
в правой части страницы настроек.Нажмите
Open settings.json
Либо:
Добавьте следующий фрагмент в свой файл settings.json
"go.testEnvVars": { "GOCACHE": "off" }
go.testEnvVars
чтобы включить следующее:"GOCACHE": "off"
источник
GOCACHE
не будет работать с последними версиями Go. Решение для VS Code - установить"go.testFlags": ["-count=1"]
в настройках.