Повторное тестирование или отключение тестового кэширования
Проблема:
Когда я запускаю один и тот же тест, дважды второй запуск не выполняется вообще. Результаты - это кешированные из первого запуска.
PASS
ok tester/apitests (cached)
связи
Я уже проверил https://golang.org/cmd/go/#hdr-Testing_flags, но для этой цели нет флага cli.
Вопрос:
Есть ли возможность заставить go test всегда запускать тест, а не кэшировать результаты теста.
Ответы
Ответ 1
Существует несколько опций, описанных в документах флажков тестирования:
-
go clean -testcache
: истекает все результаты тестирования - используйте флаги без кэширования в тестовом прогоне.
-count=1
способом является использование -count=1
Тем не менее, изменения кода или тестового кода приведут к аннулированию результатов кэшированных тестов (там также расширена логика при использовании локальных файлов или переменных среды), поэтому вам не нужно вручную лишать кеш проверки.
Ответ 2
Там также GOCACHE=off
упомянуто здесь.
Ответ 3
Способ, которым я это исправил (я использую код Visual Studio на macOS):
Код> Настройки> Настройки
Нажмите ...
в правой части страницы настроек
Нажмите Open settings.json
Или:
-
Добавьте следующий фрагмент в файл settings.json
"go.testEnvVars": {
"GOCACHE": "off"
}
- Измените значение
go.testEnvVars
включив в него следующее: "GOCACHE": "off"
Ответ 4
В Go11 я не мог отключить кеш, используя GOCACHE
с модулями, вместо этого я использовал -count=1
:
go test -count=1
До Go11:
GOCACHE=off go test