#go #goland
#Вперед #goland
Вопрос:
Если с момента последнего запуска набора тестов в Goland 2018.3 не было внесено никаких изменений в код, и последний тестовый запуск завершился успешно, Goland просто выдает последний набор результатов вместо фактического выполнения кода. Мне нужно иметь возможность запускать тесты по требованию как часть демо-версии без необходимости каждый раз вносить и отменять незначительные изменения в код, чтобы заставить его сотрудничать. Используя Testify для утверждений, не уверен, имеет ли это отношение к проблеме, которую я вижу.
Ответ №1:
Это связано с поддержкой кэширования тестов в Go 1.10 . Вы можете прочитать больше об этом здесь.
Если вы хотите отключить поддержку кэширования в Go, вам следует запустить команду test с -count=1
флагом. Чтобы сделать то же самое через GoLand, перейдите в Run | Edit Configurations... | Go Test | <name of your test configuration> | Go tool arguments
и добавьте -count=1
там в качестве параметра, затем снова запустите конфигурацию.
Если вы хотите отключить это для всех будущих сгенерированных конфигураций запуска, то выполните те же действия, что и выше, но вместо этого перейдите к Edit Configurations... | Default | Go Test
.
Комментарии:
1. Я не уверен, влияет ли это на поведение кэширования или нет, но я всегда останавливаюсь на этом ответе, ища, как заставить GoLand запускать тесты несколько раз, а добавление
count=10
кGo tool arguments
этого не делает (по крайней мере, когдаTest Kind
естьPackage
). Это потому, что на самом деле он сначала создает тестовый двоичный файл сtest -c -count=10 ...
, а затем запускает двоичный файл, что приводит к игнорированию аргумента count, переданного при его компиляции. Вместо этого я должен поместить-test.count 10
вProgram arguments
поле, которое передается в этот скомпилированный тестовый двоичный файл.