Повторное тестирование или отключение тестового кэширования

Проблема:

Когда я запускаю один и тот же тест, дважды второй запуск не выполняется вообще. Результаты - это кешированные из первого запуска.

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

Или:

  1. Добавьте следующий фрагмент в файл settings.json

    "go.testEnvVars": {
        "GOCACHE": "off"
    }
    
  2. Измените значение go.testEnvVars включив в него следующее: "GOCACHE": "off"

Ответ 4

В Go11 я не мог отключить кеш, используя GOCACHE с модулями, вместо этого я использовал -count=1:

go test -count=1

До Go11:

GOCACHE=off go test