Как мне заставить Goland каждый раз запускать тесты?

#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 поле, которое передается в этот скомпилированный тестовый двоичный файл.